#include<iostream>
class base{
public:
base(){std::cout<<"In base";}
};
class dv1:virtual private base {
public:
dv1(){std::cout<<"In DV1";}
};
class dv2:virtual private base {
public:
dv2(){std::cout<<"In DV2";}
};
class drv : public dv1, public dv2 {
public:
drv() {std::cout<<"Why is this working";}
};
int main() {
drv obj;
return 0;
}
是不是在虛擬繼承的情況下,大多數派生類的責任是調用構造函數? 注意:這裏的基地是虛擬和私人的繼承。誰在虛擬繼承中調用構造函數?
的參數的構造函數,什麼是輸出與你期待?如果你期望有不同的東西,我建議你回頭再看看繼承章節,並試着首先理解它。 – Nim 2011-01-05 10:56:19
我期待它不會編譯,因爲基礎是虛擬和私人派生的。 – Learner 2011-01-05 11:15:44