c++ 初始化列表VS构造函数内赋值初始化成员变量

Posted sean-zhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ 初始化列表VS构造函数内赋值初始化成员变量相关的知识,希望对你有一定的参考价值。

1. 只说区别

a.const类成员只能使用初始化列表的方式

b.自定义类的类型的变量初始化,尽量采用初始化列表的方式。避免类的构造+类的拷贝的双重代价。初始化列表只涉及成员变量类的构造

//自定义类型a

//构造函数内对m_a的赋值
class test

    test(class a)
    
        m_a = a;//构造 + 拷贝
    




//初始化列表对m_a的赋值
class test

    test(class a):m_a(a) //构造
    
        
    


以上是关于c++ 初始化列表VS构造函数内赋值初始化成员变量的主要内容,如果未能解决你的问题,请参考以下文章

c++ 初始化列表VS构造函数内赋值初始化成员变量

C++成员初始化列表(构造函数后加冒号:)(用于在构造函数中初始化类成员变量,可以避免使用构造函数体内的赋值语句,可以确保成员变量在对象构造之初就已经被正确初始化,提高代码的性能和可读性)

C++构造函数的初始化列表

C++中,类内的成员变量自动初始化为零吗,而全局变量随意赋值

C++初始化列表

C++从入门到入土第五篇:类与对象(下篇)