• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 对C++默认构造函数的一点重要说明

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++默认构造函数,默认构造函数,不存在默认构造函数,类不存在默认构造函数,java默认构造函数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

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

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

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

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

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

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

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


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


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


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


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

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++ 构造函数中使用new时注意事项
  • 对C++默认构造函数的一点重要说明
  • C++中函数的默认参数详细解析
  • C++函数参数取默认值的深入详解
  • 从汇编看c++中默认构造函数的使用分析

相关文章

  • 2017-05-28linux c 获得当前进程的进程名和执行路径(示例)
  • 2017-05-28c语言输出字符串中最大对称子串长度的3种解决方案
  • 2017-05-28C++线程同步实例分析
  • 2017-05-28.h和.cpp文件的区别(zt)详细介绍
  • 2017-05-28c++ dynamic_cast与static_cast使用方法示例
  • 2017-05-28详解数据结构C语言实现之循环队列
  • 2017-05-28c语言文件读写示例(c语言文件操作)
  • 2017-05-28关于大小端、位域的一些概念详解
  • 2017-05-28C/C++产生随机数函数简单介绍
  • 2017-05-28C++智能指针实例详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C语言二维数组指针(指向二维数组的指针)详解
    • c++中strcpy函数在VS2015无法使用的问题
    • C语言中计算正弦的相关函数总结
    • 二叉搜索树的插入与删除(详细解析)
    • C/C++可变参数的使用
    • C++中指针的数据类型和运算相关知识小结
    • 举例讲解C语言对归并排序算法的基础使用
    • 深入C语言内存区域分配(进程的各个段)详解
    • win32 api实现2048游戏示例
    • VC打印word,excel文本文件的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有