operator= 要注意避免内存泄露(项目经验)
来源:互联网 发布:记忆宫殿知乎 编辑:程序博客网 时间:2024/06/08 07:38
指针不论是指向malloc还是new分配得到的内存,一定要注意在改变指针指向之前一定要先释放旧的内存块。
class Test
{
public:
Test()
{
if (p != NULL)
{
free(p );
p = NULL ;
}
p = (char *)malloc( sizeof(char ));
}
Test(const Test & C1)
{
cout << "ooo我在进行拷贝构造" << endl;
p = (char *)malloc( sizeof(char ));
* p = *C1 .p;
}
~ Test()
{
cout << "ooo我在析构" << endl;
if (p !=NULL)
{
free(p );
p = NULL ;
}
}
void operator=(Test &C2)
{
if (p !=NULL)
{
free(p );
p = NULL ;
}
//这里很重要,A=B时,A本身已经malloc了一块内存,如果此时没有
free,直接执行下面一句让p指向另一块内存,那么之前malloc出来的
内存如何释放?
p = (char *)malloc( sizeof(char ));
*p = *C2.p;
}
private:
char *p ;
};
void main ()
{
Test A ;
Test B ;
A = B ; //这里要注意,直接“=”的情况下不会调用拷贝构造函数,要用=重载来避免浅拷贝
}
0 0
- operator= 要注意避免内存泄露(项目经验)
- JNI使用注意与避免内存泄露总结
- 避免Android内存泄露(译)
- (四)避免对象的内存泄露
- 避免浏览器内存泄露
- 避免内存泄露
- 避免内存泄露
- 避免内存泄露
- 避免内存泄露
- Android 避免内存泄露
- 避免Android内存泄露
- 避免Android内存泄露
- 避免Android内存泄露
- 避免context内存泄露
- 避免内存泄露
- 避免内存泄露
- android避免内存泄露
- Android避免内存泄露
- 公共开放WebService接口
- _T("") _tcslen
- 274 正三角形的外接圆面积
- 第四节GCC编译器
- viewpager无限左右滑动
- operator= 要注意避免内存泄露(项目经验)
- 第五节GDB使用
- 爬虫中的groovy脚本
- TCP/IP 是用于因特网 (Internet) 的通信协议。
- 复习整理4
- 获取UUID两种方法,并让UUID唯一的方法
- 第六节多文件项目管理
- Linux tcpdump命令详解
- 第七节 linux c的基本应用