112.虚函数强化

 1 #include <iostream>
 2 using namespace std;
 3 
 4 //多态调用依赖指针或者引用
 5 //对象调用会调用拷贝构造,拷贝一个父类,无法实现多态
 6 //如果要使用别继承的虚函数,不允许出现虚函数的重载
 7 //多态可以跨类,爷爷辈的指针可以存储孙子辈的地址
 8 
 9 class myclass
10 {
11 public:
12     virtual void go()
13     {
14         cout << "hello" << endl;
15     }
16 
17 };
18 
19 class mynewclass :public myclass
20 {
21 public:
22     void go()
23     {
24         cout << "hello world" << endl;
25     }
26 };
27 
28 void test1(myclass &my)
29 {
30     my.go();
31 }
32 
33 //这样不会调用子类重载的函数
34 void test2(myclass my)
35 {
36     my.go();
37 }
38 
39 
40 void main()
41 {
42     //mynewclass my1;
43     myclass *p = new mynewclass;
44     //p->go();
45     //调用原生的函数
46     //p->myclass::go();
47 
48     test1(*p);
49     test2(*p);
50     cin.get();
51 }

 

posted @ 2018-03-20 20:57  喵小喵~  阅读(101)  评论(0编辑  收藏  举报