我的预期输出是“bc bvfunc b(1)dc dvfunc”,但我得到了一个像“b(1)dc dvfunc”这样的输出。有人能帮我吗?感谢您宝贵的时间!为什么我得到了一个输出'b(1)dc dvfunc'?
#include<iostream>
using namespace std;
class b {
public:
b() {
cout<<" bc ";
b::vfunc();
}
virtual void vfunc(){ cout<<" bvfunc "; }
b(int i){ cout<<" b(1) "; }
};
class d : public b {
public:
d(): b(1) {
cout<<" dc ";
d::vfunc();
}
void vfunc(){ cout<<" dvfunc"; }
};
main()
{
d d;
}
谢谢你.....! – sree 2013-02-24 09:59:31
什么?!这会创建两个不同的*'b',一个是'd'的一部分,另一个是临时存在于构造函数中的临时变量。几乎没有用(除了重现输出)。 – 2013-02-24 10:12:50