相关疑难解决方法(0)

C++成语避免内存泄漏?

在以下代码中,如果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++成语来处理这个问题?

我可以改写addPart1addPart2喜欢这样来保卫MLK

addPart1()
{
  if(_ptr1 != NULL) delete _ptr1;
  _ptr1 = new part1;         
}
Run Code Online (Sandbox Code Playgroud)

这是一个好的解决方案吗?

c++

0
推荐指数
3
解决办法
3188
查看次数

标签 统计

c++ ×1