C++ 析构函数
来源:互联网 发布:国家软件资格考试认证 编辑:程序博客网 时间:2024/06/03 18:37
一、析构函数不能重载,如果没有定义析构函数,C++会自动定义合成的析构函数。如果有写析构函数,并不会覆盖合成的析构函数,先调用自己写的析构函数,再调用合成的析构函数。
二、三法则(英语:rule of three,the Law of The Big Three,The Big Three;三法则,三大定律)在 C++ 程序设计里,它是一个以设计的基本原则而制定的定律,三法则的要求在于,假如类有明显地定义下列其中一个成员函数,那么程序员必须连其他二个成员函数也一同编写至类内,亦即下列三个成员函数缺一不可。 :
- 析构函数(Destructor)
- 复制构造函数(copy constructor)
- 复制赋值运算符(copy assignment operator)
如何理解这句话,首先,从“如果需要析构函数”这里我们知道,类中必然出现了指针类型的成员(否则不需要我们写析构函数,默认的析构函数就可以用了),所以,我们需要自己写析构函数来释放给指针所分配的内存来防止内存泄露,那么为什么说“一定需要拷贝构造函数和赋值操作符”呢,原因还是这样:类中出现了指针类型的成员。有指针类型的成员,我们必须防止浅拷贝问题,所以,一定需要拷贝构造函数和赋值操作符,这两个函数是防止浅拷贝问题所必须的。
0 0
- 析构函数(C#)
- C++--------析构函数
- c++::析构函数
- C++-析构函数
- 构造函数和析构函数【c++】
- c++-构造函数与析构函数
- C++-构造函数,析构函数
- [c++]构造函数和析构函数
- C++--构造函数与析构函数
- 【C#】构造函数和析构函数
- 【c#】—架构函数&&析构函数
- 【C++】构造函数和析构函数
- 【C++】构造函数和析构函数
- C++(构造函数&&析构函数)
- 【C#】构造函数&析构函数
- 【c++】构造函数与析构函数
- 【C++】类构造函数 & 析构函数
- C++:构造函数和析构函数
- velocity模板常用语法
- HTTP长连接与短连接
- linux2.6.xx内核代码分析
- Objective-C的内省方法
- 自定义菜单的创建及菜单事件响应
- C++ 析构函数
- [Android UI]ActionBar随ScorllView上下拖动而透明度渐变效果
- 你真的懂javascript的计时器吗?
- IOS xml 与NSDictionary 互相转换
- hdu 1198 并查集
- Zookeeper的集群安装和配置
- Java练习题-求1000!的结果中包含多少个0
- hdu 4381 背包
- VC MFC 中的字符串转换