看看下面的代碼:如何將抽象類轉換爲普通類而不重載純虛函數?
class A
{
public:
virtual int getN() = 0;
};
class B : public A
{
private:
int n = 2;
public:
int getN() { return n; }
};
class C : public A
{
// do not contain property n, it nolonger need getN();
};
類A是一個抽象類。現在我有來自A的C類。但它不像B類有財產N。所以我不能重載getN()
,然後C類是一個抽象類,我不能實例化它。 所以如果我想實例化類C,我該怎麼做?
在'C'中設置'getN()'私有。 –
由於A類不適合作爲C的基礎,所以A類不適合作爲C. Dang的基礎。我很聰明。 S,M,R,T。 –
你的設計是錯誤的。基類應該具有所有子類感興趣的屬性。在你的例子中,你最好將getN()移動到B,因爲它不需要C – Nandu