结构体如何通过构造函数初始化常量
时间: 2024-10-07 17:01:40 浏览: 36
//构造函数初始化常量成员和引用成员-钱能C++课件
在C++中,结构体(struct)的成员变量包括常量和非常量。要通过构造函数初始化常量成员,你需要确保你在构造函数内部使用const关键字来表示常量。常量成员不能被修改,所以在构造函数中对它们进行赋值是正常的。
以下是一个简单的例子:
```cpp
// 定义一个包含常量和非常量成员的结构体
struct MyClass {
// 常量成员,用const修饰
const int constantValue;
// 非常量成员
int nonConstantValue;
// 构造函数,用于初始化常量和非常量成员
MyClass(int const_value, int non_const_value) :
constantValue(const_value), // 使用const关键字初始化常量成员
nonConstantValue(non_const_value) {}
};
int main() {
// 创建MyClass实例并初始化常量成员
MyClass myObject(10, 20); // 注意这里constantValue不需要显式地赋值为10,因为它是const
std::cout << "Constant value: " << myObject.constantValue << std::endl; // 输出:10
return 0;
}
```
在这个例子中,`constantValue`是在构造函数中通过参数`const_value`直接初始化的,因为它被声明为`const int`。这样,即使在构造函数之外,也不能改变它的值。
阅读全文