一道虚函数的问题,恳请高手解答代码如下C/C++ code#include stdio.hclass A{public:A* aA(){a this}
一道虚函数的问题,恳请高手解答
代码如下
- 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*吗?
[解决办法]
自己想通就好
[解决办法]
接分…………
[解决办法]
第一次猜错结果了,还好认真看了下题目。。。
