【发布时间】:2013-04-02 11:10:38
【问题描述】:
我有一个结构/类,其成员是指针,比如说
struct myStruc
{
int* m_p;
}
1.问题: 我应该在哪里删除指针?在析构函数中?
myStruct::~myStruct()
{
delete m_p;
}
2。问题:如果将指针分配给指针数组会怎样,例如
myStruct mS;
mS.m_p = new int[3];
如果我必须做delete 或delete[],现在有没有好的方法(没有dynamic_cast 或try-catch)?
【问题讨论】:
-
A/方式是在构造函数中分配内存,在析构函数中释放内存。
-
您能详细介绍一下用例吗? myStruc 的目的是什么?谁在设置 m_p? m_p 指向什么?谁决定并知道这一点?
-
@DaveRager 虽然这是一个很好的一般建议,但
struct通常只是一个没有太多附加功能的数据集合,这些数据使用public,因为应该不需要太多封装。至少当我看到一个类被定义为struct时,我是这么理解的。