Virtual Public Class用於確保類的對象只繼承一個子對象。C++中的虛擬公共類的副作用
class L { /* ... */ }; // indirect base class
class B1 : virtual public L { /* ... */ };
class B2 : virtual public L { /* ... */ };
class D : public B1, public B2 { /* ... */ }; // valid
當我們不使用它作爲單繼承時,我們使用虛擬公有方法時是否有副作用?例如,是
class L { /* ... */ }; // indirect base class
class B1 : virtual public L { /* ... */ };
class D : public B1 { /* ... */ }; // valid
相同
class L { /* ... */ }; // indirect base class
class B1 : public L { /* ... */ };
class D : public B1 { /* ... */ }; // valid
?我的意思是,在所有可能的情況下,讓父類成爲虛擬類型是安全的嗎?