1、默认构造函数

  • 没有参数;
  • 若有参数,则一定全部都有默认的参数值。

2、初始化列表

(1)概念

(2)特性

  • 建议用初始化列表来初始化数据成员。
  • 初始化列表先于构造函数执行;
  • 初始化列表只能用于构造函数;
  • 初始化列表可以同时初始化多个数据成员。

(3)必要性

  • 如果需要给const修饰的数据成员赋值,必须用初始化列表。

    

3、拷贝构造函数

(1)为什么要拷贝构造函数?见博客http://blog.csdn.net/zhhymh/article/details/6249219

(2)拷贝构造函数的定义格式

  • 如果没有自定义的拷贝构造函数,则系统自动生成一个默认的拷贝构造函数;
  • 当采用复制初始化实例化对象时,系统自动调用拷贝构造函数。

  • 以下是函数传参时,调用拷贝构造函数。(这里没有剪切完整的代码)

4、构造函数总结

构造函数分为无参构造函数、有参构造函数

  • 无参构造函数是默认构造函数;
  • 有参构造函数分为参数带默认值,参数无默认值;其中如果参数带默认值,也算是默认构造函数

构造函数和拷贝构造函数都是自动调用的

  • 我们先编写好这些函数,然后当实例化或者复制初始化时,会自动调用这些函数。

C++远航之封装篇——默认构造函数、初始化列表、拷贝构造函数相关推荐

  1. C++构造函数初始化列表与构造函数中的赋值的区别

    转载 C++构造函数初始化列表与构造函数中的赋值的区别 2016-12-10 15:16:51 xingpacer 阅读数 10391更多 分类专栏: C++相关 查看全文 http://www.ta ...

  2. C++构造函数初始化列表与赋值

    C++中类的初始化操作一般有四个部分组成: 1.构造函数初始化列表 2.构造函数体内赋值 3.类外部初始化 4.类声明时直接赋值 对于内部数据类型(char,int,float...),构造函数初始化 ...

  3. 【Flutter】Dart 面向对象 ( 类定义 | 类的继承 | 私有变量 | 可选参数 | 默认参数 | 初始化列表 )

    文章目录 一. Dart 面向对象 二. 类定义 三. 类的继承 四. 私有变量 五. 可选参数与默认参数 六. 初始化列表 七. 完整代码示例 八. 相关资源 一. Dart 面向对象 OOP 基本 ...

  4. C++ 类构造函数初始化列表介绍

    构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式. 构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个 ...

  5. C++类构造函数初始化列表

    构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式.例如: class CExample { public:     int a;     f ...

  6. c++的构造函数初始化列表

    C++类构造函数初始化列表 构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式.例如: class CExample { public: in ...

  7. 1.c++中初始化列表和构造函数初始化的区别是什么?2.类的成员变量的初始化顺序是按照声明顺序吗?

    初始化列表和构造函数初始化的区别是什么? 初始化和赋值对内置类型的成员没有太大的区别,在成员初始化列表和构造函数体内进行,在性能和结果上都是一样的.只有一些需要注意的事项 初始化列表一般情况如下: D ...

  8. C++类构造函数初始化列表及初始化成员变量的误区

    构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式.例如: [cpp] view plaincopy class CExample { pub ...

  9. c++初始化成员列表_C++ 类构造函数初始化列表

    关注我们更多精彩等你发现! 构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式.例如: 上面的例子中两个构造函数的结果是一样的.上面的构造函数 ...

最新文章

  1. 关于String数组的用法
  2. CAD绘图控件VectorDraw web library (javascript)更新至v7.7014.1.0丨75折优惠
  3. python3 写文件时指定文件名_Python3基础 os listdir 列举指定的所有文件及文件夹的名字...
  4. 科大星云诗社动态20201222
  5. Qt 之 Qt/Qt Lite 自编译详解(VS/MinGW/...)
  6. python tqdm记录dataframe使用iterrows或iteritems循环行或循环列时的进度
  7. mysql通过日志恢复数据_mysql通过binlog日志来恢复数据
  8. 刷脸AI供应商下调业绩预期,苹果股价应声跌掉一个小米
  9. 20岁生日 nyoj 312(闰年算法)
  10. 沟通和编程一样,也是一门艺术系列4(沟通的原则)
  11. 华为鸿蒙专属文件后缀,华为鸿蒙——上传第三方APP【原理公布】
  12. 台式计算机 cpu型号大全,台式机CPU参数对照表
  13. 17-[案例1]奇虎导航案例
  14. android 呼吸灯,十三种呼吸灯交互触控体验_手机_手机Android频道-中关村在线
  15. 云服务器共享文件格式设置,云服务器文件共享设置
  16. iPhone手机 开发者模式 解读
  17. 国内那么多AI专业,为什么国内却没有ChatGPT?
  18. iOS安全攻防(九)使用Theos开发SpringBoard的Tweat
  19. SpringSecurity系列学习(一):基于JWT的认证
  20. layui checkbox 反选/全选/取消单个取消全选/全部选中勾上全选

热门文章

  1. BZOJ.2741.[FOTILE模拟赛]L(分块 可持久化Trie)
  2. Node.js的helloworld 程序
  3. Android 监控网络状态
  4. 微软中国职位[北京工作]
  5. 书写README的各种markdown语法
  6. 获取 docker 容器(container)的 ip 地址
  7. 经常使用的 WEB server
  8. LeetCode(53):Maximum Subarray
  9. MeasureSpec学习 - 转
  10. 张左峰的歪理邪说 之 大话Redmine插件