【发布时间】:2012-03-18 21:29:26
【问题描述】:
我的意思是,如果我有类似的课程:
class A{
int* pi;
};
*A pa;
当我拨打delete pa时,pi会被删除吗?
【问题讨论】:
-
如果你把它编码成那样的话。如果您将其编码为不是,则不会。决定你想要的并编码。
-
使用标准库容器或智能指针作为成员来避免这种情况。
-
没有。但请注意,它将调用析构函数,您可以在其中清理 A 实例。如果你想在那里删除 pi,那么你可以这样做。 但是您必须首先确保您正确拥有指针。循环rule of three。
标签: c++ class pointers delete-operator