首页 > 其他分享 >成员初始化列表

成员初始化列表

时间:2023-12-10 14:57:49浏览次数:27  
标签:初始化 int 成员 列表 tmpvalue 构造函数

成员初始化列表是C++中的一个特性,它允许在构造函数中对类的成员变量进行初始化。成员初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。例如:

class MyClass {
public:
    MyClass(int a, int b) : m_a(a), m_b(b) { }
private:
    int m_a;
    int m_b;
};

在这个例子中,MyClass的构造函数使用成员初始化列表来初始化m_am_b

成员初始化列表的主要优势是提高程序运行效率。对于类类型成员变量,放到初始化列表中能够比较明显地看到效率的提升,但是如果是个简单类型的成员变量,比如 int m_test,其实放在初始化列表或者放在函数体里效率差别不大1

此外,有些情况下必须使用成员初始化列表:

  • 该类的成员变量是个引用。
  • 该类的成员变量是const类型。
  • 该类是继承一个基类,并且基类中有构造函数,构造函数里有参数。
  • 该类的成员变量类型是类类型,而该类的构造函数带参数时。

例如:

class Base {
public:
    Base(int tmpa, int tmpb) { }
};

class CSub {
public:
    CSub(int tmpv) { }
};

class A : public Base {
public:
    int &m_yy;
    const int m_myc;
    CSub cmysub;

    A(int &tmpvalue) : m_yy(tmpvalue), m_myc(tmpvalue), Base(tmpvalue, tmpvalue), cmysub(tmpvalue) {
        m_x = 0;
        m_y = 0;
        m_yy = 180;
    }
};

在这个例子中,A的构造函数使用成员初始化列表来初始化m_yym_mycBasecmysub1

 

标签:初始化,int,成员,列表,tmpvalue,构造函数
From: https://www.cnblogs.com/whcjob/p/17892640.html

相关文章

  • 对象的初始化
    对象的初始化常用到构造器(construct)来创建对象。publicPerson(Stringname,intage){this.name=name;this.age=age;}publicstaticvoidmain(String[]args){Personp=newPerson("Tom",15);} 构造......
  • VUE框架CLI组件化列表信息完整功能实现------VUE框架
    CLI组件化列表信息完整功能实现<template><div><BugHeader:bugList="bugList":saveBugCallBack="saveBugCallBack"></BugHeader><BugList:updateDescCallBack="updateDescCallBack":selectAllRollbac......
  • HTML中的三个列表,具体的使用及列表样式
    HTML有三种列表:##一、有序列表有序列表(Orderedlists):用数字或字母来标记列表项,每个列表项前会有一个数字或字母。```html<ol><li>列表项1</li><li>列表项2</li><li>列表项3</li></ol>```##二、无序列表无序列表(Unorderedlists):用符号来标记列表项,每个列表项前会有一个......
  • Python:数据容器-list(列表)
    列表定义语法:字面量[元素1,元素2,元素3,...]定义变量变量名称=[元素1,元素2,元素3,...]定义空列表变量名称=[]变量名称=list()列表内的每个数据,称之为元素以[]作为标识列表内每个元素用,逗号隔开注意事项:列表可以一次多个数据,且可以为不同数据类型,支持嵌套"......
  • Python:列表的下标索引
    列表的下标(索引):取出特定位置的数据语法:列表[下标索引]列表的下标(索引)-反向反向索引就是从后向前:从-1开始,依次递减(-1、-2、-3...)嵌套列表的下标(索引)列表[内层列表[索引]]#通过下标索引取出对应位置的数据my_list=["itheima",666,True]#列表[下标索引],从前向后从......
  • Python:列表的常用操作方法
    列表上限:2**63、922372036854775807个查询元素查找指定元素在列表的下标,如果找不到,报错ValueError语法:列表.index(元素)插入元素在指定下标位置,插入指定的元素语法:列表.insert(下标,元素)追加元素将指定元素,追加到列表的尾部语法:列表.append(元素)将其他数据容器的内容......
  • Python:列表的循环遍历
    while循环遍历for循环遍历#列表的遍历-while循环遍历deflist_while_func():"""列表的遍历-while循环遍历:return:None"""list1=[21,25,21,23,22,20]index=0whileindex<len(list1):tmp=list1[ind......
  • Acwing 840. 模拟散列表
    题面:维护一个集合,支持如下几种操作:Ix,插入一个整数 \(x\);Qx,询问整数 \(x\) 是否在集合中出现过现在要进行 \(N\) 次操作,对于每个询问操作输出对应的结果。原题链接:840.模拟散列表-AcWing题库哈希表[1]基本概念哈希表也叫散列表,通过将键映射到索引位置(在关键......
  • Python将列表数据保存为excel
    一、需求背景工作需要将列表数据写入到excel中,方便运营同学查看,数据示例如下:data_0=[[['Name','Age','Gender'],['Jack',22,'Male'],['Tom',34,'Female']],[['id&#......
  • Vue学习计划-Vue2--Vue核心(五)条件、列表渲染、表单数据
    1.条件渲染v-ifv-if="表达式"v-else-if="表达式"v-else="表达式"适用于:切换频率较低的场景特点:不显示dom元素,直接被删除注意:v-if和v-else-if、v-else一起使用,但要求结构不能被打断v-if和template一起使用,v-show不可以v-showv-show="表达式"适用于:切换频......