释放类成员指针指向的内存与释放类对象内存的先后有关问题
释放类成员指针指向的内存与释放类对象内存的先后问题。
------解决方案--------------------
为了避免内存泄漏,必须显示delete!在那里delete就看你new出来的需要的生命周期而定拉
class T
{
private:
char * str;
int len;
pulic:
....;
~T();
};
T::T(const T & st) //复制构造函数
{
len=st.len;
str=new char[len+1];
std::strcpy(str,st.str);
}
给定一个已经初始化的类对象S;
T * favor=new T(S);
delete favor;
当delete对象时,这里释放的是保存str的指针和len成员的空间,并不释放str指向的内存。
那究竟是先释放掉S的内存还是先释放str指向的内存呢。
内存
类
------解决方案--------------------
为了避免内存泄漏,必须显示delete!在那里delete就看你new出来的需要的生命周期而定拉