在以下代码中,如果Info::addPart1()多次意外调用,则会发生内存泄漏:
typedef struct
{
}part1;
typedef struct
{
}part2;
class Info
{
private:
part1* _ptr1;
part2* _ptr2;
public:
Info()
{
_ptr1 = _ptr2 = NULL;
}
~Info()
{
delete _ptr1;
delete _ptr2;
}
addPart1()
{
_ptr1 = new part1;
}
addPart2()
{
_ptr2 = new part2;
}
};
Info _wrapper;
_wrapper.addPart1();
_wrapper.addPart2();
Run Code Online (Sandbox Code Playgroud)
有没有C++成语来处理这个问题?
我可以改写addPart1并addPart2喜欢这样来保卫MLK
addPart1()
{
if(_ptr1 != NULL) delete _ptr1;
_ptr1 = new part1;
}
Run Code Online (Sandbox Code Playgroud)
这是一个好的解决方案吗?
c++ ×1