標籤:amp cte alt str rand dynamic ges size blog
#include <iostream>#include <vector>#include <string>using namespace std;class parent{protected: string pname;public: parent(string name){ pname = name; } virtual void printname(){};};class child : public parent {protected: string cname;public: child(string name):parent(name){ cname = name; } virtual void printname(){ cout << "this is child, cname is" << cname << ", pname is " << pname << endl; }};class grandchild: public child{private: string gname;public: grandchild(string name):child(name){ gname = name; } virtual void printname(){ cout << "this is grandchild,gname is" << gname << ", cname is" << cname << ", pname is" << pname << endl; }};int main(){ string name = "C"; child Child(name); name = "GC"; grandchild Gchild(name); vector<parent*> mlist; mlist.push_back(dynamic_cast<parent*>(&Child)); mlist.push_back(dynamic_cast<parent*>(&Gchild)); for(int i = 0; i < mlist.size(); i++){ mlist[i] -> printname(); } return 0;}
結果:
c++繼承執行個體