这是我的班级设置的精简版:
class CMyClass : public CDialog
{
CMyClass(CWnd *pParent = NULL); // constructor
~CMyClass();
_ CBrush *_pRadBkgColor; // background color of a radio button
}
CMyClass::CMyClass(CWnd *pParent /*=NULL*/)
{
// assign CBrush pointer to a new brush
_pRadBkgColor = new CBrush(RGB(0xFF, 0xFF, 0xFF));
}
CMyClass::~CMyClass()
{
if( _pRadBkgColor != NULL )
{
delete _pRadBkgColor
}
_pRadBkgColor = NULL;
}
现在,当我运行一个分析代码以查找细微错误的工具时,我得到了这个:
没有赋值运算符的类“名称”的构造函数中的新函数——在被引用类的构造函数中,出现了一个新函数。但是,没有为此类声明赋值运算符。大概一些类成员(或成员)指向动态分配的内存。默认赋值运算符未正确处理此类内存。通常需要自定义赋值运算符。因此,如果 x 和 y 都是 Symbol x = y 类型;将导致指针重复。稍后删除会造成混乱。
我相信它告诉我,如果我有两个成员变量是 CBrush 指针,让我们调用它们a
和最好保持不变),然后我删除or ,就会有混乱。b
a
new
b = a
a
a
b
如果我不做这样的任务,这安全吗?
谢谢史蒂文