c++深层复制
2013-03-09 16:22
162 查看
本文内容已经移至我最新的个人博客,欢迎大家到我的新网站交流学习。 查看文章请点我。
深层复制也就是为复制的成员变量重新开辟一个内存,是两者没有直接的关联。
相反,浅层复制就是让两个成员指针变量指向同一个内存地址,这样容易造成程序的崩溃。
<span style="font-size:18px;">// HelloWorld.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; class demo { public: demo(){x=new int;*x=25;cout<<"无参构造函数"<<endl;}; demo(const demo&d) { cout<<"复制构造函数执行。"<<endl; x=new int; *x=*(d.x); } void get()const{cout<<*x<<endl;} void set(int n){*x=n;} ~demo(){delete x;x=NULL;cout<<"函数析构完毕"<<endl;} private: int *x; }; int _tmain(int argc, _TCHAR* argv[]) { demo *a=new demo; a->get(); demo b=(*a); b.get(); a->set(35); a->get(); b.get(); system("pause"); return 0; }</span>
深层复制也就是为复制的成员变量重新开辟一个内存,是两者没有直接的关联。
相反,浅层复制就是让两个成员指针变量指向同一个内存地址,这样容易造成程序的崩溃。
相关文章推荐
- c++ 构造函数深层复制示例
- c++一般指针的深层复制和浅层复制(1)
- C++中的浅层复制和深层复制
- C++深层复制解决指针悬挂
- C++之重载String ----- 构造函数、复制控制、重载操作符
- C++中复制构造函数与重载赋值操作符总结
- C++中extern “C”含义深层探索
- (转)C++中extern “C”含义深层探索
- C++中extern “C”含义深层探索
- 批注:C++中复制构造函数与重载赋值操作符总结:默认浅拷贝,带指针的需要深拷贝
- C++中extern “C”含义深层探索
- windows 与linux 下用C++读取sqlite实现文件复制(二)
- C++中构造函数、复制构造函数和赋值操作符
- C++中extern “C”含义深层探索
- C++中extern “C”含义深层探索
- java和C++中数组的初始化和复制
- (转)C++中extern “C”含义深层探索
- c++ 深复制,浅复制
- C++ 深复制 浅复制解析
- effective c++条款10-12(operator=(重载返回类型、自我赋值和深层复制))整理