我有一個抽象類是這樣的:如何正確處理抽象類的抽象成員?
class IMovable {
protected:
MovementPath *movementPath;
public:
IMovable();
virtual ~IMovable();
void setMovementPath(MovementPath *movementPath);
};
凡movementPath
是在它自己的一個抽象類。
當IMovable
的具體實現被刪除時,我需要刪除movementPath
(更確切的說就是它的具體實現)以及它的任何成員。
我該怎麼做?
我試過虛擬析構函數,但沒有奏效(我可能已經搞砸了),並在具體實現中刪除它會崩潰程序,它應該是因爲它是錯誤的,褻瀆的,不應該在那裏完成。
我該怎麼辦?
我不明白的問題。 MovementPath是一個基本的抽象類嗎? – mkmostafa
你可能已經違反了三次規則。停止使用擁有所有權語義的原始指針。現在不是1996年了。 –
會做。沒有意識到非原始類型。 – Karlovsky120