class A
{
//friend class B;
protected:
A(){cout << "A\n";};
};
class B: virtual A
{};
class C : B
{};
int main() {
C c;
return 0;
}
雖然我期待由於A:A()受到保護而導致錯誤,但我能夠成功編譯此代碼。基於這樣一個事實,即對於虛擬基類,其大多數派生類直接將其稱爲基類。 上面的代碼給出了在基類中對ctor()的私有訪問的編譯錯誤[預期]。 有人可以澄清這一點,謝謝!使用受保護的C++防止派生類的繼承
你想禁止從「A」繼承? –
我想禁止繼承B. – knils