c++(重载等号=操作为深拷贝)
2016-05-25 13:49
274 查看
// ConsoleApplication19.cpp : 定义控制台应用程序的入口点。 // #pragma warning(disable:4996) #include "stdafx.h" using namespace std; #include <iostream> class A { public: //=等号操作默认的是浅拷贝 这里重载=为深拷贝 当类里出现指针变量 用等号是浅拷贝 A& operator=(A& obj) { if (this->pc != NULL) { this->a = 0; delete this->pc; } this->a = obj.a; this->pc = new char[obj.a]; return *this; } A() {} A(int a) { this->a = a; this->pc = new char[a]; } ~A() { if (this->pc != NULL) { delete pc; } cout << "A析构函数"<< endl; } private: int a; char * pc; }; class B { public: B() { } private: int b1; int b2; A a1; A a2; }; void displayObj() { A a1(1); A a2; a2 = a1; } void main() { displayObj(); system("pause"); }
相关文章推荐
- C++primer_第八章_IO库_学习跟踪
- opencv:求一幅图片的LBP纹理图(c++版本)
- c++作业6
- POJ2418 二叉排序树 && 字典树写法
- 初识lambda表达式
- C++实现生成1—10000之间的10000个不重复的随机数
- Cppcheck 1.54 C/C++静态代码分析工具
- 顺序表的增删查改、二分查找、冒泡和快速排序
- 快排的一些思考!
- C++设计模式浅识工厂方法模式
- C++作业6
- C++第6次上机实验-【项目2:数组合并】
- ARM 浮点运算详解 另一篇
- C语言 链表的创建--打印--逆置--新增--删除--排序--释放
- C++ 右值引用
- C++调用COM之错
- C++模板
- 指针与引用一些区别
- C++ 析构函数 为何一般定义为虚函数
- C++中的三种继承public,protected,private详细解析