C++和object pascal构造函数和析构函数的差异
来源:互联网 发布:国产电视剧知乎 编辑:程序博客网 时间:2024/05/22 02:21
C++中,子类构造的时候会自动调用父类的构造函数,注意:子类的构造函数都是调用父类的无参构造函数,也就是说子类的构造函数即便有多个重载形式,任何子类重载的构造函数里都是调用的父类的无参构造函数,而不会调用父类其他重载的构造函数,子类释放的时候也会自动调用父类的析构函数。建议父类的析构函数声明为virtual,以便在多态的情况下,正确释放。C++的特征之一就是编译器不会帮用户做更多的工作,这样可以把细节都让用户了解,但是构造和析构函数是特例,编译器自动调用了,我认为主要是C++觉得这是必须的,一般来说确实是必须的,因为在初始化子类时,也不太可能不初始化父类的数据,否则会造成数据错误之类的问题。
object pascal中,子类的构造函数调用的时候,并不会自动调用父类的构造,需要添加inherited来显式的调用父类的构造函数,子类调用析构函数也一样,需要显式的调用父类的析构函数,这样的优势在于,父类的析构函数调用可以由用户决定调用为止,但建议在最后调用。
学习建议:当你不清楚构造函数、析构函数、虚函数是怎么回事,或者说是怎么调用,如何调用的情况下,请一定在编译器上测试明白之后,在进行代码的开发,软件设计不能有模糊不清的东西,若不清楚,一定编写测试代码搞清楚为止,否则今后会导致很多你不明白的问题。
- C++和object pascal构造函数和析构函数的差异
- Object-C 的构造函数析构函数
- 构造函数和析构函数【c++】
- [c++]构造函数和析构函数
- 【C#】构造函数和析构函数
- 【C++】构造函数和析构函数
- 【C++】构造函数和析构函数
- C++:构造函数和析构函数
- C/C++——构造函数、复制构造函数和析构函数的执行时刻
- [c++]派生类的构造函数和析构函数
- C++:类的构造函数和析构函数
- c++---派生类的构造函数和析构函数
- <C++>析构函数、虚析构函数和构造函数
- IOS前奏之Object-C基础:类的构造函数和description(自描函数)
- 全局对象和函数内静态对象调用构造析构函数差异
- 全局对象和函数内静态对象调用构造析构函数差异
- 【C/C++】实现一个string类的构造函数、析构函数和赋值函数
- 【C/C++】构造函数和析构函数
- 使用POI操作excel(读取和创建)快速开发指南
- 学习程序设计的理由
- 广搜之最小步数
- 上市之后Twitter的入职面试问题
- The network connection was lost.
- C++和object pascal构造函数和析构函数的差异
- mark /etc/security/limits.conf
- 静态变量与实例变量的区别
- 《Unix编程艺术》
- 你还觉得增加外链是一件很难的事?
- 图像检索:几类基于内容的图像分类技术
- Java Arrays.asList一些自以为没有错误的逻辑,其实是错误的用法
- 保护成员
- 交叉编译protobuf