holyya.com
2025-09-04 06:31:53 Thursday
登录
文章检索 我的文章 写文章
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++程序时,初始化列表应该被充分考虑,并合理使用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复