【发布时间】:2013-12-10 13:27:20
【问题描述】:
我可以控制对象何时析构
Class::~Class(){
cout << "Destructor called" << endl;
};
被称为?或者它总是在处理对象之后被调用。 无论如何,有人可以解释析构函数如何正常工作以及如何管理它。
【问题讨论】:
-
好吧,选择任何 C++ 手册,从堆栈/堆上的对象分配到析构函数,它将引导您理解它。
我可以控制对象何时析构
Class::~Class(){
cout << "Destructor called" << endl;
};
被称为?或者它总是在处理对象之后被调用。 无论如何,有人可以解释析构函数如何正常工作以及如何管理它。
【问题讨论】:
您可以通过在创建的对象上调用delete 来调用析构函数(例如,在创建的对象上,即新对象上)。对于结构体,当对象不再处于活动函数中时,会调用析构函数,因此在调用 return 后,所有结构体都会被操作系统“删除”
基本上,当您不再需要您的对象时(或在您关闭应用程序之前),您的代码中的每个新内容都应该有 delete。 malloc 也是如此,应该与 free 一起发布。不要混合数组和对象。 new[] 必须以delete[] 结尾,而不是delete。
【讨论】: