1 class man
2 {
3 public:
4 int name;
5 //加上virtual关键字,可以使得父类用子类初始化后可以调用子类的函数
6 virtual void run()
7 {
8 cout << "man is running" << endl;
9 }
10 };
11
12 class son :public man
13 {
14 public:
15 void run()
16 {
17 cout << "son is running" << endl;
18 }
19 };
20
21 void main()
22 {
23 /*man man1;
24 son son1;
25 man *p = &man1;
26 p->run();
27 p = &son1;
28 p->run();*/
29 man *pman = new man;
30 son *pson = new son;
31 //子类指针转换为父类指针,但是还是调用子类的函数
32 man *pfu = dynamic_cast<man *>(pson);
33 pfu->run();
34 system("pause");
35 }