C++三法则:如果需要析构函数,则一定需要拷贝构造函数和赋值操作符
2015-08-27 15:36
309 查看
C++三法则:如果需要析构函数,则一定需要拷贝构造函数和赋值操作符
如何理解这句话,首先,从“如果需要析构函数”这里我们知道,类中必然出现了指针类型的成员(否则不需要我们写析构函数,默认的析构函数就可以用了),所以,我们需要自己写析构函数来释放给指针所分配的内存来防止内存泄露,那么为什么说“一定需要拷贝构造函数和赋值操作符”呢,原因还是这样:类中出现了指针类型的成员。有指针类型的成员,我们必须防止浅拷贝问题,所以,一定需要拷贝构造函数和赋值操作符,这两个函数是防止浅拷贝问题所必须的
如何理解这句话,首先,从“如果需要析构函数”这里我们知道,类中必然出现了指针类型的成员(否则不需要我们写析构函数,默认的析构函数就可以用了),所以,我们需要自己写析构函数来释放给指针所分配的内存来防止内存泄露,那么为什么说“一定需要拷贝构造函数和赋值操作符”呢,原因还是这样:类中出现了指针类型的成员。有指针类型的成员,我们必须防止浅拷贝问题,所以,一定需要拷贝构造函数和赋值操作符,这两个函数是防止浅拷贝问题所必须的
相关文章推荐
- C语言中求余弦值的相关函数总结
- 笨笨调试C程序
- [leetcode]Plus One C语言
- c++----------------volatile
- C时间函数
- 错题
- C语言的文件操作 freopen
- C++ 异常
- C++编译器无法捕捉到的8种错误
- 消除C++工程中生成的无用文件
- C++ 常见崩溃问题分析
- 笨笨VC调试串口程序
- 公共字串计算
- 【more effective c++读书笔记】【第2章】操作符(2)
- 【more effective c++读书笔记】【第2章】操作符(2)
- C/C++中关于struct内存对齐问题
- 【c++学习笔记】进入c++
- C++构造函数小结
- C语言中 fputs() fgets() 的使用方法
- CPP简单项目问题 dll和控制台