前文:C++之构造函数和(构造)函数重载探究
相关博文:C++新特性探究(七):初始化列表(Initialization List)
相关博文:C++新特性探究(八):初始化列表(Initialization List)再探究
相关博文:C++之关于初始化列表(Initialization List)的一个补充示例
相关博文:C++之初始化列表的一个笔记

  在使用C++编程的过程当中,常常需要在构造函数中对类的成员变量进行初始化,通常的方法有两种:

  第一种方法:在构造函数体内通过赋值语句初始化

  Thing(int a,int b,int c) {x=a;y=b;z=c;}

  第二种方法:使用初始化列表形式初始化

  Thing(int a,int b,int c):x(a),y(b),z(ccc) { }

初始化列表使用简单示例:

程序中为什么要使用初始化列表?

  (1) 对于类类型的成员,使用初始化列表效率更高。
  (2) 有些类型的成员变量必须使用初始化列表的形式初始化,如const成员、引用成员。
  (3) 在继承时,子类的构造函数中初始化父类的成员时。
例1:
  const常量必须得在初始化列表中赋值

例2:引用成员必须得在初始化列表中赋值

例3:在继承时,子类的构造函数中初始化父类的成员时必须使用初始化列表

附例3代码

//小问学编程
#include<iostream>
using namespace std;class Base
{public:Base(int i):b_number(i){}int get_number(){return b_number;}void print(){cout<<b_number<<endl;}
private:int b_number;
};class Derived:public Base
{public:Derived(int i,int j):Base(i),d_number(j){}void print(){//access number through get_number()cout<<get_number()<<" ";//cout<<b_number<<" ";cout<<d_number<<endl;}
private:int d_number;
};int main()
{Base a(2);Derived b(3,4);a.print();//print()in Basecout<<"b is";b.print();//print()in Derivedcout<<"base part of b is ";b.Base::print();return 0;
}

附:C++之关于初始化列表(Initialization List)的一个补充示例

C++新特性探究(七):初始化列表(Initialization List)相关推荐

  1. C++新特性探究(八):初始化列表(Initialization List)再探究

    相关博文:C++新特性探究(七):初始化列表(Initialization List) 相关博文:C++新特性探究(八):初始化列表(Initialization List)再探究 相关博文:C++之 ...

  2. C++之关于初始化列表(Initialization List)的一个补充示例

    相关博文:C++新特性探究(七):初始化列表(Initialization List) 相关博文:C++新特性探究(八):初始化列表(Initialization List)再探究 相关博文:C++之 ...

  3. C++新特性探究(9.1):functor仿函数探究

    相关博文:C++新特性探究(九):functor仿函数 Functor 对象模拟函数   把类对象,像函数名一样使用.   仿函数(functor),就是使一个类的使用看上去像一个函数.其实现就是类中 ...

  4. C++新特性探究(十三):右值引用(r-value ref)探究

    相关博文: C++新特性探究(十三):右值引用(r-value ref)&&探究 C++新特性探究(十六):move constructor移动构造 C++新特性探究(13.5):右值 ...

  5. C++新特性探究(十):Lambda

    一. 匿名函数   简短函数,就地书写,调用.即Lambda存在的意义,常用于取代作回调用的简短函数指针与仿函数.   就地书写,因只有函数体,即无函数名,也称匿名函数. 格式 最小的 Lambda: ...

  6. C++新特性探究(九):functor仿函数

    相关博文:C++新特性探究(9.1):functor仿函数探究 仿函数技术难度不高,但对菜鸟来说侮辱性极强! 一. operator( )   重载了operator()的类的对象,在使用中,语法类似 ...

  7. Java 8新特性探究(二)深入解析默认方法

    转载自 Java 8新特性探究(二)深入解析默认方法 什么是默认方法,为什么要有默认方法 简单说,就是接口可以有实现方法,而且不需要实现类去实现其方法.只需在方法名前面加个default关键字即可. ...

  8. C++新特性探究(13.6):右值引用再探究

    相关博文: C++新特性探究(十三):右值引用(r-value ref)&&探究 C++新特性探究(十六):move constructor移动构造 C++新特性探究(13.5):右值 ...

  9. C++新特性探究(13.5):右值引用

    相关博文: C++新特性探究(十三):右值引用(r-value ref)&&探究 C++新特性探究(十六):move constructor移动构造 C++新特性探究(13.5):右值 ...

最新文章

  1. “刷脸”之后 声纹识别有望成为新秀
  2. 欧几里得距离网络_Scientific Reports|基于集成相似度的神经网络药物相互作用预测...
  3. 每句话都可以品味一生
  4. 如何应对货期延迟(转自索菲外贸笔记)
  5. leetcode 687. Longest Univalue Path | 687. 最长同值路径(树形dp)
  6. 如果误删谷歌浏览器的书签,怎么恢复
  7. 信息学奥赛一本通 2061:【例1.2】梯形面积
  8. Android笔记 意图传值demo
  9. 数据结构大作业_大数据课程笔记
  10. 大数据爆炸改变企业的决策
  11. python利用PIL及openpyxl实现图片转为excel表格
  12. oracle中cube的作用,Oraclerollup和cube分析
  13. Circuit Breaker模式
  14. iOS自动化测试需求实现(iOS按键精灵类似)
  15. 麒麟座迷你板STLINK使用
  16. postgresql整理
  17. 用户画像原理、技术选型及架构实现
  18. python修改文件格式为jpg_利用python将webp文件转化为jpg文件,将png文件修改为jpg,图像重命名...
  19. nginx正向代理,提供爬虫请求代理
  20. RSA算法原理详解(简单易懂)

热门文章

  1. android java资源包下载网站
  2. 母亲节html页面,[母亲节散分]模块化思想的重要性_html/css_WEB-ITnose
  3. Java通讯录管理系统使用线性表任务台程序
  4. 基于JAVA+Swing+MYSQL的超市管理系统
  5. 极递云课显示服务器连接超时,服务器连接问题
  6. 实验一 DOS命令解释程序的编写
  7. 网页中调用Google地图
  8. Salesforce 中获取数据表字段的 picklist 的值
  9. 今天我的MSN提示升级了
  10. 如何杀掉可恶的Notkelvir病毒