2
這個問題最好用代碼描述。我有一個名爲Vertex
類,它包含一個名爲Params
類的一個實例:C++:重寫純虛擬成員變量?
class Params {
virtual Params operator + (Params const& p) = 0;
};
class Vertex {
public:
Params operator + (Params const& ap) const {
return p + ap
};
virtual float eval() = 0;
private:
Params const p;
};
我也有一個名爲EllParams
類,這是從Params
和EllVertex
這是從Vertex
得出的。我想知道的是如何處理私人成員變量p
Vertex
EllVertex
:我希望它是EllParams
類型。有沒有辦法讓p
虛擬/覆蓋它?或者我應該尋找一種解決方案的模板?
有沒有辦法讓數據成員'虛擬'。我會盡量避免在繼承樹的非葉類中的數據成員;如果您需要從基類訪問數據成員,那麼創建一個可以在派生類中實現的虛函數。 – 2010-08-18 17:42:14
您正在嘗試使用抽象類型的數據成員。這是行不通的。改用指針(你可能想使用智能指針)。這樣,虛擬行爲將起作用。 – 2010-08-18 17:57:45