C++ 常量成员
在C++面向对象编程中,常量成员是一种重要的特性,它可以帮助我们创建更加安全和可靠的类设计。常量成员包括常量成员变量和常量成员函数,它们在不同场景下发挥着重要作用。本文将详细介绍C++中常量成员的定义、使用方法及其实际应用场景。
常量成员变量
什么是常量成员变量?
常量成员变量是指在类中声明为const
的成员变量,它的值在对象的生命周期内保持不变。通常情况下, 常量成员变量需要在构造函数的初始化列表中进行初始化。
声明和初始化常量成员变量
class Circle {
private:
const double PI; // 常量成员变量
double radius;
public:
// 使用初始化列表初始化常量成员变量
Circle(double r) : PI(3.14159), radius(r) {
// PI = 3.14; // 错误!常量成员变量不能在构造函数体内赋值
}
double getArea() const {
return PI * radius * radius;
}
};
int main() {
Circle c(5.0);
std::cout << "圆的面积: " << c.getArea() << std::endl;
return 0;
}
输出:
圆的面积: 78.5398
备注
常量成员变量必须在构造函数的初始化列表中初始化,而不能在构造函数体内进行赋值操作。
静态常量成员变量
静态常量成员变量是属于类而非对象的常量,可以在类内直接初始化(如果是整型或枚举类型):
class MathConstants {
public:
static const int MAX_ITERATIONS = 1000; // 整型静态常量可以在类内初始化
static const double E; // 非整型静态常量需要在类外定义
};
// 类外定义非整型静态常量
const double MathConstants::E = 2.71828;
int main() {
std::cout << "最大迭代次数: " << MathConstants::MAX_ITERATIONS << std::endl;
std::cout << "自然对数底数: " << MathConstants::E << std::endl;
return 0;
}
输出:
最大迭代次数: 1000
自然对数底数: 2.71828