|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include "iostream"
- using std::endl;
- using std::cout;
- using std::cin;
- class A
- {
- public:
- virtual void printA()
- {
- cout << "AAAAA" << endl;
- }
- };
- class B:public A
- {
- public:
- virtual void printB()
- {
- cout << "BBBBB" << endl;
- }
- };
- void fun1(A* pA)
- {
- pA->printA();
- }
- void fun2(A& a)//A* const a (*a).printA();
- {
- a.printA();
- }
- void main()
- {
- A* p = NULL;
- A a1;
- B b1;
- p = &a1;
- p->printA();
- p = &b1;
- p->printA();
- {
- fun1(&a1);
- fun1(&b1);
- }
- {
- fun2(a1);
- fun2(b1);
- }
- system("pause");
- }
复制代码
这里为啥调用的全是父类的printA()
p = &b1;
p->printA();
父类指针指向子类对象后,重写的函数上面有virtual 为啥还能调用父类对象
没有virtual 的我能理解 肯定调用父类的 |
|