【发布时间】:2011-06-21 21:42:16
【问题描述】:
我有几个对象通过指针共享数据。指针参数通过构造函数发送,如下所示。
class A
{
public:
Shared* pB = new Shared();
User* object1 = new User(pB);
User* object2 = new User(pB);
}
class User
{
public:
User(Shared* pB) {m_sharedB = pB};
private:
Shared* m_sharedB;
}
class Shared
{
public:
struct Account
{
int account_number;
}
void method(){...};
}
我的问题与 C++ 析构函数有关。当 object1 被删除时,成员变量“m_sharedB”会发生什么?是否存在其他对等点悬空指针的问题?
【问题讨论】:
-
大量错误。你真的自己尝试过什么吗?请修复基本语法错误。
-
是
Shared指向你的班级吗?还是库类? -
m_sharedB 指向的对象不会被删除。曾经。我不知何故认为这不是您要寻找的答案。也许您应该问的问题是如何在不再需要该对象后立即销毁它?
-
Shared 不是库类,它只是一个普通类
标签: c++ constructor destructor shared-ptr