我有一个抽象类是这样的:如何正确处理抽象类的抽象成员?
class IMovable {
protected:
MovementPath *movementPath;
public:
IMovable();
virtual ~IMovable();
void setMovementPath(MovementPath *movementPath);
};
凡movementPath
是在它自己的一个抽象类。
当IMovable
的具体实现被删除时,我需要删除movementPath
(更确切的说就是它的具体实现)以及它的任何成员。
我该怎么做?
我试过虚拟析构函数,但没有奏效(我可能已经搞砸了),并在具体实现中删除它会崩溃程序,它应该是因为它是错误的,亵渎的,不应该在那里完成。
我该怎么办?
我不明白的问题。 MovementPath是一个基本的抽象类吗? – mkmostafa
你可能已经违反了三次规则。停止使用拥有所有权语义的原始指针。现在不是1996年了。 –
会做。没有意识到非原始类型。 – Karlovsky120