初始化列表

  • 1. 类成员为const类型
  • 2 . 类成员为引用类型
  • 3.没有默认构造函数的类类型
  • 4. 如果类存在继承关系,派生类必须在其初始化列表中调用基类的构造函数

1. 类成员为const类型

2 . 类成员为引用类型

1.常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面。
2.引用类型,引用必须在定义的时候初始化,并且不能重新赋值,所以也要写在初始化列表里面

#include<iostream>
using namespace std;
struct Demo{
const int m_a;
int &m_b;Demo(int a,int& b):m_a(a),m_b(b){}~Demo(){}
};int main(){int m=5;int n=6;Demo a(m,n);cout << a.m_a << endl;cout << a.m_b << endl;
}

3.没有默认构造函数的类类型

因为使用初始化列表可以不必调用默认构造函数来初始化,而是直接调用拷贝构造函数初始化。

#include<iostream>
using namespace std;class Base{
public:Base(int a):val(a){}void print_val(){cout << "val=" << val << endl;}
private:int val;
};class A{
public:A(int v):p(v),b(v){}void print_val(){cout << "p= " << p  << endl;}
private:
int p;
Base b;
};
int main(){int m=5;A b(m);b.print_val();
}

4. 如果类存在继承关系,派生类必须在其初始化列表中调用基类的构造函数

class Base
{public:Base(int a) : val(a) {}private:int val;
};class A : public Base
{public:A(int v) : p(v), Base(v) {}void print_val() { cout << "class A:" << p << endl;}private:int p;
};
int main()
{int m = 45;A b(m);b.print_val();
}

C++中必须用初始化列表的四种情况相关推荐

  1. python中如何创建一个空列表_Python学习笔记(1):列表的四种创建方法

    我的电脑安装的是Anaconda 3开源的Python发行版本,其中是集合3.6版本的Python与可视化编程工具采用的是Spyder. 打开Spyder可视化工具,新建一个空白文件,做好备注为&qu ...

  2. 【Kotlin】Kotlin 类的继承 二 ( 属性覆盖 | 属性覆盖的四种情况 | 常量 / 变量 属性覆盖 | 子类初始化与属性覆盖 )

    文章目录 I . 属性覆盖基本方式 II . 属性覆盖的四种情况 III . 常量 ( val ) / 变量 ( var ) 属性覆盖 IV . 子类初始化时考虑覆盖属性的使用 I . 属性覆盖基本方 ...

  3. xlsx表格怎么筛选重复数据_excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法...

    excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法,最近到了季度汇报的时候,掌握一手excel技能在此刻显得多么重要,为了是你的excel看起来更高大上,今天教大家设置 ...

  4. python中for循环遍历列表的几种方法

    列表在使用过程中,经常需要遍历列表的所有元素,对每个元素执行相同的操作.今天介绍python中for循环遍历列表的几种方法. 方法1:使用for循环简单结构遍历 首先我们新建一个城市列表,然后分别展示 ...

  5. Action中取得request,session的四种方式

    Action中取得request,session的四种方式 在Struts2中,从Action中取得request,session的对象进行应用是开发中的必需步骤,那么如何从Action中取得这些对象 ...

  6. JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...

  7. 如何在html添加css样式表,网页中添加CSS样式表的四种方式

    本文向大家描述一下网页中添加CSS样式表的四种方式,首先让我们来看一下CSS样式表文件的优势,主要体现在两个方面,请看下文详细介绍. CSS样式表文件的优势表现在两个方面: ***,简化了网页的格式代 ...

  8. java输出值取后两位小数,java中取小数点后两位(四种步骤)

    java中取小数点后两位(四种方法) 一 java.text.DecimalFormat df = new java.text.DecimalFormat("#.##"); dou ...

  9. c#初始化数组的四种方式

    //作者:鸟哥 qq1833183060 //初始化数组的四种方式 //参考:https://www.cnblogs.com/afei-24/p/6738128.html //csharp讨论群:11 ...

最新文章

  1. R语言使用coin包应用于独立性问题的置换检验(permutation tests、响应变量是否独立于组、两个数值变量是独立的吗、两个分类变量是独立的吗)、以及coin包的常用置换检验函数
  2. 机器学习(MACHINE LEARNING)Sklearn通用学习模式
  3. 立体神经网络模拟连续不完备系统
  4. windbg调试cpu占用率高的进程
  5. 检索数据_1_从表中查询所有行和列
  6. webpack 读取文件夹下的文件_webpack基本介绍及使用
  7. 5G网络切片的七种武器(六)
  8. 群辉 NAS 配置 iSCSI 存储
  9. poi导出excel文件加密处理
  10. 涨价不再“嘘声”一片,“爱优腾”集体“想开了”?
  11. 程序员进阶的五个瞬间,开头就笑了!
  12. Linux如何制作efi启动盘,教你制作macOS+Ubuntu+WindowsPE超级启动盘(仅支持UEFI)
  13. 转:极速的关键——斯巴鲁车系四驱系统详解
  14. 【书虫录】富爸爸穷爸爸
  15. ubuntu配置IP地址,网关,DNS和路由
  16. 家暴屡教不改能判刑吗
  17. i7 11700k和12700k哪个好
  18. 刷题记录:牛客NC17889新建 Microsoft Office Word 文档
  19. 一个老程序员写给毕业生们的一些话
  20. 计算机网络应用基础试题6,职称计算机考试:计算机网络应用基础模拟练习题(6)...

热门文章

  1. 双十一期间Kafka以这种方式丢消息让我猝不及防
  2. 【C语言】实现3位数码管显示
  3. AI遮天传 ML-广义线性模型(一)
  4. 粤嵌携手华工汽车学院举办嵌入式大赛
  5. 8.接口隔离原则——面向对象设计原则
  6. 特价直销2.0KΩ无感电阻全新原装
  7. window权限 及c++实现 【网摘】
  8. Android 8.0 SystemUI消息列表图标显示问题
  9. 【PXE高效的批量网络装机】
  10. FFmpeg及音频简介