我的預期輸出是「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