class A
{
  private:
     int * m_b;
  public:
    ...
    A(int *b=0){m_b=b;};
    ~A(){m_b=0;};
    void operator = (int* b){m_b=b;};
}
如果在程序中: b 获得一个指针;
 A=b;
 b 释放地址;
 b 获得另一个指针;
 A=b;
 
 这样是否会内存泄露? A中的m_b的地址是否要释放?
 

解决方案 »

  1.   

    不会。在A类里没有new,不用delete
      

  2.   

    没有new和delete!!!所以谈不上没有内存泄露和没有释放
      

  3.   

    没看见new... ...啥地方new地?
      

  4.   

    把你的描述用代码写出来:
    ====================================================================================
    b 获得一个指针;     int* b=new int(0);
     A=b;               A a=b;
     b 释放地址;        delete b;                //这一步已经delete了,所以不会泄漏.
     b 获得另一个指针;  b=new int(0);
     A=b;               a=b;
    ====================================================================================