21xrx.com
2025-07-08 21:47:40 Tuesday
文章检索 我的文章 写文章
C++类的初始化列表介绍
2023-07-09 00:15:04 深夜i     --     --
C++ 初始化列表

C++类的初始化列表是一种非常重要的语法特性,它应该在C++编程中得到充分的关注。初始化列表允许我们在创建对象时,为类的成员变量和常量赋初始值,这也是C++相对于其他编程语言的优势之一。

在C++中,类的成员变量可以通过构造函数来进行初始化。但是,当类的成员变量是常量或者是不可默认构造的类型时,我们必须使用初始化列表来为其赋值。初始化列表使用冒号来分隔成员变量和常量,并使用逗号来分隔不同的成员变量和常量。例如:

class Example
{
public:
  Example(int num1, int num2) : m_num1(num1), m_num2(num2)
  
    // 构造函数的主体部分
  
private:
  const int m_num1;  // 常量成员变量
  int m_num2;     // 非常量成员变量
};

上述代码中,初始化列表为常量成员变量m_num1和非常量成员变量m_num2分别赋值。需要注意的是,在初始化列表中,我们需要写出成员变量的类型和名称,但是不需要写出变量的访问权限修饰符。

除了为成员变量和常量赋值外,初始化列表还可以执行函数调用。这意味着,在对象创建时,我们还可以执行一些初始化的操作。例如:

class Example
{
public:
  Example() : m_num1(getNum1()), m_num2(getNum2())  // 调用函数进行初始化
  
    // 构造函数的主体部分
  
private:
  int getNum1() const
  
    return 100;
  
  int getNum2() const
  
    return 200;
  
  const int m_num1;
  const int m_num2;
};

上述代码中,我们使用调用函数的方式来为两个常量成员变量m_num1和 m_num2进行赋值,这样的调用方式可以让代码更加优雅,同时也可以在初始化时执行一些其他的操作。

总的来说,初始化列表允许我们在创建对象时,为类的成员变量和常量进行初始化,而且还可以在列表中执行函数调用。这样的操作可以让代码更加优雅,减少重复代码的出现。因此,在编写C++程序时,初始化列表应该被充分考虑,并合理使用。

  
  

评论区