对C++默认构造函数的一点重要说明

 更新时间:2016年12月22日 10:28:29   投稿:jingxian  
下面小编就为大家带来一篇对C++默认构造函数的一点重要说明。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

大多数C++书籍都说在我们没有自己定义构造函数的时候,编译器会自动生成默认构造函数。其实这句话我一直也是

深信不疑。但是最近看了一些资料让我有了一点新的认识。

其实我觉得大多数C++书籍之所以这样描述其实是玩了文字游戏的。如果说编译器自动产生的默认构造函数对于我们

的类没有任何作用,也就是说在编译器默认生成的这个构造函数里根本没有任何实质性的代码工作,那么这种默认构

造其实是可有可无的,所以不妨说编译器其实是为每个类生成了默认构造函数的。

在深度探索C++对象模型中讲了四种关于编译器自动生成默认构造函数的情况,在这四种情况下生成的默认构

造函数里面是由实质的隐含代码操作的:

1、 如果类A成员中含有某个类B的对象,恰好类B也显示定义了构造函数,那么在产生类A对象的时候编译器会产生一个默认构造函数,在这个默认构造函数中提供了调用类A构造函数的代码。


2、如果类B继承于类A,且类A显示定义了构造函数,那么在生成类B对象的过程中编译器同样会产生一个默认构造函数,在这个构造函数中提供调用基类A构造函数的代码。


3、如果某个类含有虚函数,那么编译器会自动产生一个默认构造函数以提供虚表指针相关的初始化操作。


4、如果一个类虚继承于其他类,那么同样的编译器会为该类产生默认的构造函数。


除以上四种情况,编译器都不产生默认构造函数,因为就算编译器产生了默认构造函数,然而在该默认构造函数中没有实质的内容,那么这个默认构造函数也就是没存在的意义的,那么我们说编译器不产生也无妨吧。

以上就是小编为大家带来的对C++默认构造函数的一点重要说明全部内容了,希望大家多多支持脚本之家~

相关文章

  • C语言判断回文数的小例子

    C语言判断回文数的小例子

    这篇文章主要介绍了C语言判断回文数的小例子,有需要的朋友可以参考一下
    2014-01-01
  • dev c++的使用和调试方式

    dev c++的使用和调试方式

    这篇文章主要介绍了dev c++ 的使用和调试方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • C++11线程、互斥量以及条件变量示例详解

    C++11线程、互斥量以及条件变量示例详解

    这篇文章主要介绍了C++11线程、互斥量以及条件变量,C++11增加了线程以及线程相关的类,很方便地支持了并发编程,使得编写多线程程序的可移植性得到了很大的提高,本文通过实例代码给大家详细讲解,需要的朋友可以参考下
    2023-03-03
  • C++ OpenCV实战之网孔检测的实现

    C++ OpenCV实战之网孔检测的实现

    这篇文章主要介绍了如何利用C++和OpenCV实现网孔检测,文中的示例代码讲解详细,对我们学习OpenCV有一定帮助,感兴趣的小伙伴可以了解一下
    2022-05-05
  • 详解C语言的void*空指针

    详解C语言的void*空指针

    这篇文章主要为大家详细介绍了C语言的void*空指针,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • C语言实现BMP格式图片转化为灰度

    C语言实现BMP格式图片转化为灰度

    这篇文章主要为大家详细介绍了C语言实现BMP格式图片转化为灰度,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • C语言的程序环境与预处理你真的了解吗

    C语言的程序环境与预处理你真的了解吗

    这篇文章主要为大家详细介绍了C语言的程序环境与预处理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • C++表达式new与delete知识详解

    C++表达式new与delete知识详解

    这篇文章主要为大家详细介绍了C++表达式new与delete知识点,学习如何动态创建对象,动态创建的对象与一般对象的区别,动态创建的对象的初始化以及释放动态分配的内存等知识点,感兴趣的朋友可以参考一下
    2016-05-05
  • 基于C语言实现的贪吃蛇游戏完整实例代码

    基于C语言实现的贪吃蛇游戏完整实例代码

    这篇文章主要介绍了基于C语言实现的贪吃蛇游戏完整实例代码,对于学习游戏开发的朋友有一定的借鉴价值,需要的朋友可以参考下
    2014-08-08
  • 浅析C语言中的内存布局

    浅析C语言中的内存布局

    以下是对C语言中的内存布局进行了详细的分析介绍。需要的朋友可以过来参考下
    2013-08-08

最新评论