zoukankan      html  css  js  c++  java
  • 自定义类的初始化列表

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    class ConstRef
     
    {
    public:
     
        ConstRef( int ii );
     
    private:
     
        int i;
     
        const int ci;
     
        int & ri;
    };
     
     
    ConstRef::ConstRef( int ii )
     
    {
        i = ii;         /* ok */
     
        ci = ii;        /* error: 不可以对 const类型 赋值 */
     
        ri = i;         /* 不可以对引用赋值 */
    /* const 和 引用只可以初始化 */

    这可以换一种方式,就是使用构造函数初始化列表
        ConstRef::ConstRef (int ii):i (ii), ci(ii),ri (ii){}

    必须 要对 所有的
    • const成员
    • 引用成员
    • 没有默认构造函数类类型 成员
    使用 初始化列表的方式 来初始化

    同时 初始化类成员 的次序 是跟我们所 写的 初始化列表顺序无关的,它只跟成员定义的顺序相关

    (先执行基类构造函数,如果有)然后该类初始化列表语句,再执行花括号的语句!
  • 相关阅读:
    动手动脑5
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每周总结
    2020/10/13
    2020/10/20
  • 原文地址:https://www.cnblogs.com/zhxshseu/p/5294614.html
Copyright © 2011-2022 走看看