首页 > 编程语言 > 详细

c++中必须使用初始化列表初始化的的四种情况

时间:2021-03-30 22:05:44      阅读:32      评论:0      收藏:0      [点我收藏+]

1. 必须使用初始化列表初始化一个引用成员;

class CBase
{
public:
    CBase(int a) : m_a(a)  //正确,m_a是一个变量的引用,必须通过初始化列表初始化
    {
        // m_a = a;           //错误
        cout << "m_a:" << m_a << endl;
    }

public:
    int& m_a;
};

2. 必须使用初始化列表初始化一个常量成员;

class CBase
{
public:
    CBase(int a) : m_a(a)  //m_a是一个const常量,必须通过初始化列表初始化
    {
        //m_a = a;          //错误,此处相当于赋值操作,但是const是不可修改的,无法作为左值;
    }

public:
    const int m_a;
};

 

3. 初始化派生类的基类时,必须使用初始化列表进行初始化;

 

4. 当初始化话成员对象时,必须使用初始化列表进行初始化;

 

class CBase
{
public:
    CBase(int a) : m_a(a)  //m_a是一个const常量,必须通过初始化列表初始化
    {
        //m_a = a;          //错误,此处相当于赋值操作,但是const是不可修改的,无法作为左值;
    }

public:
    const int m_a;
};


class CSub
{
public:
    CSub() : m_obj(88)    //正确, 成员对象初始化
    {
        cout << "this is m_obj::m_a = " << m_obj.m_a << endl;
    }

public:
    CBase m_obj;
};

 

c++中必须使用初始化列表初始化的的四种情况

原文:https://www.cnblogs.com/weiyouqing/p/14598387.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!