参考链接:C语言中文网 http://c.biancheng.net/cpp/biancheng/view/2979.html

一、 使用参数初始化表并没有效率上的优势,仅仅是书写方便。

 

二、初始化 const 成员变量

参数初始化表还有一个很重要的作用,那就是初始化 const 成员变量。初始化 const 成员变量的唯一方法就是使用参数初始化表。例如 VS/VC 不支持变长数组(数组长度不能是变量),我们自己定义了一个 VLA 类,用于模拟变长数组,请看下面的代码:

class VLA{
private:
    const int m_len;
    int *m_arr;
public:
    VLA(int len);
};

//必须使用参数初始化表来初始化 m_len
VLA::VLA(int len): m_len(len){
    m_arr = new int[len];
}

VLA 类包含了两个成员变量,m_len 和 m_arr 指针,需要注意的是 m_len 加了 const 修饰,只能使用参数初始化表的方式赋值,如果写作下面的形式是错误的:

class VLA{
private:
    const int m_len;
    int *m_arr;
public:
    VLA(int len);
};

VLA::VLA(int len){
    m_len = len;
    m_arr = new int[len];
}

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-05
  • 2021-11-22
  • 2021-10-21
猜你喜欢
  • 2021-12-02
  • 2022-01-08
  • 2022-12-23
  • 2021-11-03
  • 2022-12-23
  • 2021-11-03
相关资源
相似解决方案