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的地址是否要释放?
{
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的地址是否要释放?
====================================================================================
b 获得一个指针; int* b=new int(0);
A=b; A a=b;
b 释放地址; delete b; //这一步已经delete了,所以不会泄漏.
b 获得另一个指针; b=new int(0);
A=b; a=b;
====================================================================================