考慮下面的代碼:私有繼承:我如何創建基類(擁有純虛擬方法)的對象?
class Base
{
protected:
virtual void methodDefinedInBase() = 0;
}
Class Derived: private Base
{
public:
void someMethod();
protected:
virtual void methodDefinedInBase()
{
std::cout<<"From B"<<std::endl;
}
}
在上面的代碼中,我可以創建類型「派生」的對象。 C++允許我從Derived類中的「someMethod()」訪問方法「methodDefinedInBase()」。但是,如何創建一個「Base」類型的對象?
謝謝,
Vishnu。
你不能。你爲什麼想要? – Beta
基準中methodDefinedInBase「defined」的確切程度如何?它只在那裏宣佈。 – Andrei
我試圖用私有繼承來實現組合。而我的自然衝動是創建一個「基礎」的對象,並將其添加到「派生」類。但是,我打敗了我自己的目的。實現一個私有繼承將強制組合。 :) –