zoukankan      html  css  js  c++  java
  • c++中必须使用初始化列表初始化的的四种情况

    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;
    };
    青青园中葵,朝露待日晞。 阳春布德泽,万物生光辉。 常恐秋节至,焜黄华叶衰。 百川东到海,何时复西归? 少壮不努力,老大徒伤悲!
  • 相关阅读:
    递归——8月4日
    练习:结构体、枚举类型——8月3日
    结构体、枚举类型——8月3日
    数组——7月25日
    类的复习——7月25日
    异常保护——7月25日
    类以及练习——7月25日
    javase学习小结二
    javase学习小结一
    产生随机数的方法
  • 原文地址:https://www.cnblogs.com/weiyouqing/p/14598387.html
Copyright © 2011-2022 走看看