当我们使用 C++ 进行编程时,会经常需要在类的构造函数中对成员变量进行初始化。初始化的方式有很多种,其中一种比较常见的方式是使用初始化列表(Initializer list)。
初始化列表是在函数体之前,使用冒号(:)对成员变量进行初始化的一种方式,其语法如下所示:
class Foo {
public:
Foo(int a, int b, int c) : m_a(a), m_b(b), m_c(c) {
// 构造函数体
}
private:
int m_a;
int m_b;
int m_c;
};
在构造函数的初始化列表中,我们可以通过成员变量的初始化方式,让编译器生成更加高效的代码。同时,初始化列表还可以让我们在构造函数中初始化常量成员变量和引用类型成员变量。
下面,我们通过两个示例来讲解如何使用初始化列表。
示例一
class Rectangle {
public:
Rectangle(int width, int height) : m_width(width), m_height(height) {}
int getArea() const { return m_width * m_height; }
private:
int m_width;
int m_height;
};
在上面的示例中,我们定义了一个矩形类 Rectangle,其中包含两个成员变量 m_width 和 m_height,分别代表矩形的宽和高。我们在构造函数中使用初始化列表的方式对这两个成员变量进行初始化。
示例二
class Point {
public:
Point(int x, int y) : m_x(x), m_y(y), m_distance(sqrt(m_x * m_x + m_y * m_y)) {}
double getDistance() const { return m_distance; }
private:
int m_x;
int m_y;
double m_distance;
};
在上面的示例中,我们定义了一个点类 Point,其中包含两个成员变量 m_x 和 m_y,分别代表点的横坐标和纵坐标。我们在构造函数中使用初始化列表的方式对这两个成员变量进行初始化,同时还计算了点到原点的距离,并初始化了 m_distance 成员变量。
以上就是使用初始化列表的完整攻略及示例讲解。在实际开发中,我们应该尽可能使用初始化列表的方式对成员变量进行初始化,以生成更加高效的代码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++示例讲解初始化列表方法 - Python技术站