📜  初始化列表 C++ (1)

📅  最后修改于: 2023-12-03 15:22:41.724000             🧑  作者: Mango

初始化列表(C++)

在 C++ 中,初始化列表提供了一种有效的方式来初始化类的成员变量。初始化列表使用一组大括号 {} 作为语法,可以在对象创建的同时初始化成员变量。这种方式比在构造函数内部显式初始化成员变量更高效,因为它允许编译器在对象创建时直接初始化成员变量,而不是在构造函数体内进行赋值操作。

语法

以下是初始化列表的通用语法:

class MyClass {
public:
  MyClass(int var1, int var2, int var3)
    : member1_(var1),
      member2_(var2),
      member3_(var3) {

  }
private:
  int member1_;
  int member2_;
  int member3_;
};

初始化列表语法由冒号 : 开始,然后是一个由逗号 , 分隔的成员初始化列表。每个成员的初始化语法为 成员名_(初始化表达式),其中 成员名_ 表示成员变量的名字,初始化表达式 表示用于初始化成员变量的表达式。

示例

以下是初始化列表的用法示例:

#include <iostream>

class Point {
public:
    Point(int x, int y) : x_(x), y_(y) {}

    int x_;
    int y_;
};

int main() {
    Point p(3, 4);
    std::cout << "x: " << p.x_ << ", y: " << p.y_ << std::endl;
    return 0;
}

在这个例子中,Point 类有两个成员变量 x_y_,它们在构造函数中通过初始化列表进行初始化。

运行程序输出:

x: 3, y: 4
总结

初始化列表提供了一种高效的初始化成员变量的方式,在对象创建时使用一组大括号 {} 进行初始化,比构造函数内部显式初始化效率更高。借助初始化列表,可以轻松创建含有多个成员变量的类,并保持代码的可读性和清晰性。