【发布时间】:2013-03-17 05:37:35
【问题描述】:
我创建了一个类,并根据 Andrew Koenig 和 Barbara E. Moo 的教科书 Accelerated C++,
析构函数的工作是在对象消失时进行任何清理。通常,这种清理涉及释放构造函数已分配的资源,例如内存。
我正在尝试编写一个析构函数,但我被所有漂浮在那里的代码弄糊涂了。有时使用像这样的简单解构器~MyIntArray() {},有时{} 之间有一些东西。
在大括号之间放置东西的规则是什么?它只是容器吗?需要放在大括号之间的列表、数组、向量、指针(这些是我在代码示例中看到的内容)。
编辑:这是我的课程,以备不时之需
class msgInfo
{
public:
msgInfo();
msgInfo(int, int, int, std::string, std::list<int>);
private:
int source_id;
int dest_id;
int priority;
std::string payload;
std::list<int> nodePath;
};
【问题讨论】:
-
从您的四个(列表、数组、向量和指针)列表中,指针是唯一需要在析构函数中处理的指针。您的班级没有任何这些,因此不需要析构函数。这是一件好事,也是我对阅读 Koenig 和 Moo 的人的期望。
标签: c++ class destructor