深拷贝和浅拷贝
来源:互联网 发布:模仿台词的软件 编辑:程序博客网 时间:2024/06/09 15:16
浅拷贝程序C++提供的解决方法
显示提供copy构造函数
显示操作重载=号操作,不使用编译器提供的浅copy
#define _CRT_SECURE_NO_WARNINGS #include <iostream>using namespace std;//class Name{public:Name(const char *myp) //理解:当只有这个构造函数时,对象初始化只会进行地址的直接复制,则此为浅拷贝,不能达到我们的要求{m_len = strlen(myp);m_p =(char *) malloc(m_len + 1); //strcpy(m_p, myp);}//Name obj2 = obj1;//解决方案: 手工的编写拷贝构造函数 使用深copyName(const Name& obj1){m_len = obj1.m_len;m_p = (char *)malloc(m_len + 1);strcpy(m_p, obj1.m_p);}~Name(){if (m_p != NULL){free(m_p);m_p = NULL;m_len = 0;}}protected:private:char *m_p ;int m_len; };//对象析构的时候 出现coredumpvoid objplaymain(){Name obj1("abcdefg");//Name obj2 = obj1; //C++编译器提供的 默认的copy构造函数 浅拷贝Name obj3("obj3");obj3 = obj1; // C++编译器提供的 等号操作 也属 浅拷贝}void main91(){objplaymain();cout<<"hello..."<<endl;system("pause");return ;}
阅读全文
0 0
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- 深拷贝和浅拷贝
- 深拷贝和浅拷贝
- 深拷贝和浅拷贝
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- 深拷贝和浅拷贝
- 深拷贝和浅拷贝
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- 深拷贝 和 浅拷贝
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- 深拷贝和浅拷贝
- 深拷贝和浅拷贝
- 第3章 Openwrt下载及配置
- 资源论文搜索引擎汇总
- Python学习之路---Python元组
- 单链表
- eclipse中server location灰色,如何修改?
- 深拷贝和浅拷贝
- Oracle笔记十三:视图、同义词、索引
- JDK并发包1
- Oracle笔记十四:用户管理
- 学习深入理解java虚拟机笔记--对象已死吗
- xp系统无声、midi无声、软件有声
- 关于vsftpd配置,限制用户访问家目录
- Oracle笔记十五:数据库备份
- Struts2中过滤器和拦截器的区别