【发布时间】:2011-10-11 11:40:54
【问题描述】:
我有一个类,它有一个以指针作为其成员之一的结构。
struct group {
void *v1,
void *v2;
};
class A {
A (group& handle)
: m_handle(handle)
private :
group m_handle;
};
类 A 中没有指针成员。当 A 中没有定义析构函数时,我没有看到任何问题(例如内存泄漏)。我了解到,当对象 A 超出范围时,会调用 A 的析构函数如果 A 中存在成员类,则调用它们的析构函数,依此类推。那么,上面的 m_handle 成员结构会发生什么 - 它们是否有任何类似于析构函数的东西?当对象 A 超出范围时,结构组中的两个 void 指针如何被删除?
【问题讨论】:
-
关于“已删除”指针的语言不清楚。指针本身被删除就好了,但正如其他人指出的那样,它们指向的任何内存都不会被删除。
标签: c++ pointers structure destructor