
输出结果:
In A::fun( ).
In C::fun( ).
请问为什么是这样的输出结果?是如何实现的?
正常啊,声明C 对象时,先执行父类的(基类)构造函数
B类的构造函数调用了fun()方法,当然这个方法是继承父类的
故在初始化B类构造函数是输出In A::fun( )
C类对象调用自己的方法输出In C::fun( )没什么好说的
其实楼主是不是想搞清楚多态啊
C C;
这行代码调用了B的构造函数,在B的构造函数中调用的A::fun();
c.g()
这行代码由于重载,调用了C::fun()
一个是构造函数,一个是c.g()