浅拷贝问题出现原因剖析
来源:互联网 发布:检测是否是字符串 js 编辑:程序博客网 时间:2024/06/04 18:18
#include <iostream>using namespace std;class Test{public: Test(const char*p) { this->len = strlen(p); name = (char*)malloc((len+1)*sizeof(char)); strcpy(name,p); } Test(const Test &obj)//解决浅拷贝问题 提供深拷贝构造函数 { this->len = obj.len; name = (char*)malloc((len+1)*sizeof(char)); strcpy(name,obj.name); } ~Test()//浅拷贝,同一块内存空间会析构两次 出现问题 { if (name!=NULL) { free(name); name = NULL; len =0; } } //重载等号操作符 Test& operator=(const Test &obj) { this->len = obj.len; this->name = (char*)malloc((len+1)*sizeof(char)); strcpy(this->name,obj.name); return *this; } void printName() { cout<<name<<endl; } void printLen() { cout<<len<<endl; }protected:private: char *name; int len;};void display(){ Test t("abc"); Test t2 = t;//t2调用拷贝构造函数 t2.printName();}void display2(){ Test t("abc"); Test t2("efgh") ; t2 = t;//如果不重载=操作符 此处也会出现问题,同一块内存空间被释放两次 t.printName();}int main(){ display2(); system("pause"); return 0;}
0 0
- 浅拷贝问题出现原因剖析
- C++顺序表模板练习 以及 剖析易出现的浅拷贝问题
- 用string剖析浅拷贝、深拷贝、写时拷贝
- codeblocks调试出现问题原因
- _BSMachError问题出现原因探索
- 对string深拷贝浅拷贝的理解剖析
- 拷贝代码后中文出现乱码问题
- BeanUtils.copyProperties出现了问题的原因
- jxl.common.AssertionFailed 出现问题的原因。
- 代码中出现的奇怪问题原因
- Dell服务器主机出现问题的原因
- 跨域问题出现原因和解决方案
- 浅拷贝问题跑出
- 浅拷贝问题分析
- 剖析解决VB.NET报表问题效率低下的原因
- 深拷贝、浅拷贝构造函数问题
- 讨论深拷贝和浅拷贝问题?
- 深拷贝和浅拷贝使用问题
- Hadoop集群搭建过程中遇到的那些事
- Android探索之旅(第四篇) 面试总结大全
- 第四周项目1建立单链表
- Eventbus3.0学习笔记
- JS对象继承的一些方法
- 浅拷贝问题出现原因剖析
- 二、oracle sql*plus常用命令
- 二维码的生成细节和原理
- day14 python logging复习
- Fresco图片框架内部实现原理探索
- win7系统下安装UbuntuKylin16.04双系统成功经验
- linux根文件系统/etc/group文件详解
- ] Android系统Recovery工作原理之使用update.zip升级过程分析(四)---Android系统Recovery模式的工作原理
- 评估容器安全的现状,解你心中疑惑