我创建了一个类:
class Message {
public:
Message(string sender, string message_text);
Message(string sender);
Message();
~Message();
bool wasRead() const;
void updateWasReadStatus();
void printMessage() const;
private:
string Sender_;
string Text_;
bool wasRead_;
};
当我实现desturctor时,我是否必须明确调用析构函数 Sender _ & 文字_ ?或者在我编写时默认析构函数隐式调用它们(没有明确地实现~Message()
):
delete pMessage; //pointer to Message object
无论如何,我实现了这样的析构函数:
Message::~Message(){
delete Sender_;
delete Text_;
}
可以吗?在这种情况下,我可以计算默认的析构函数吗?
我理解(如果我错了,请纠正我): 当调用default-destructor时,它会为每个成员调用析构函数:
如果我没有做对,如果有人能向我解释,我将不胜感激。
感谢。
答案 0 :(得分:8)
不,你不需要。 (你一定不能!)
您只对使用new
分配的内存负责,然后才能使用delete
。