« | July 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | |
|
公告 |
My blog is about my major : network security.the most papers are talk about it ,I like my major ,i wish you could find what's you need in it. |
统计 |
blog名称:我的IT人生 日志总数:78 评论数量:185 留言数量:-1 访问次数:522893 建立时间:2006年4月5日 |
| 
|
本站首页 管理页面 写新日志 退出
[C/C++]类似深构造函数的运算符‘=’重载用法 |
当类中包含指针成员*P而使用默认的赋值运算符‘=’来进行赋值操作的时候,会出现该类的这两个对象的*P指向内存中(堆中)同一片区域的现象,这时,如果这两个对象调用析构函数来释放空间,则会出现同一个内存区域被反复释放的危险操作。(=操作类似于浅析构函数。)
解决方法:重载‘=’操作符,并在函数中重新new空间,以方便析构函数释放。
e.g.
sample &operator=(sample &s)
{
delete p; //清除原来的指针
p=new char[strlen(s.p)+1];//重新申请指针及空间
strcpy(p,s.p);//拷贝构造过程
return *this;
}
|
阅读全文(2664) | 回复(0) | 编辑 | 精华 |
|