【发布时间】:2020-09-25 13:32:03
【问题描述】:
在 c++ 中,我有一个使用 new[] 分配内存的类,所以我编写了如下的析构函数:
Matrix::~Matrix() {
delete[] data;
}
我的 Matrix 类包含名为 complex 的字段,它是我编写的 Complex 类的成员。
我的问题是,我是否也应该调用 complex 的析构函数,以及如何调用?
【问题讨论】:
-
如果你在
Complex类中定义了析构函数,当你的Matrix对象被销毁时,拥有的复杂对象的析构函数会被自动调用。 -
请参阅标记为destruction sequence 的部分,了解有关如何销毁对象及其成员的详细信息。
-
“我应该调用
complex的析构函数too”——这有点误解。代码不会调用data的析构函数。它删除data。如果你new它你delete它。
标签: c++ class destructor