一道虚函数的有关问题,恳请高手解答
一道虚函数的问题,恳请高手解答
代码如下
运行结果怎么会是B的fun?
b.a的结果为什么是B*类型的?
B b;的时候,是先运行A类的构造函数,那时候,那个this是B*吗?
------解决方案--------------------
自己想通就好
------解决方案--------------------
接分…………
------解决方案--------------------
第一次猜错结果了,还好认真看了下题目。。。
代码如下
- C/C++ code
#include <stdio.h> class A { public: A* a; A() { a = this; } virtual void fun() { printf("A::fun\n"); } }; class B:public A { public: int i; B():i(20){}; virtual void fun() { printf("B::fun\n"); } }; void main() { B b; A* a=b.a; a->fun(); }
运行结果怎么会是B的fun?
b.a的结果为什么是B*类型的?
B b;的时候,是先运行A类的构造函数,那时候,那个this是B*吗?
------解决方案--------------------
自己想通就好
------解决方案--------------------
接分…………
------解决方案--------------------
第一次猜错结果了,还好认真看了下题目。。。