在类的private中使用多个const,怎么在类外完成初始化
时间: 2024-03-25 17:39:38 浏览: 19
在类的`private`中使用多个`const`时,需要在类外进行初始化。对于多个`const`成员变量,可以使用以下两种方式进行初始化:
1. 在类外分别进行初始化
```
class MyClass {
private:
const int MY_CONST1;
const int MY_CONST2;
public:
MyClass(int value1, int value2) : MY_CONST1(value1), MY_CONST2(value2) {} // 构造函数中初始化
};
int main() {
MyClass obj(10, 20);
cout << obj.MY_CONST1 << endl; // 访问常量成员变量
cout << obj.MY_CONST2 << endl;
return 0;
}
```
在上面的例子中,`MY_CONST1`和`MY_CONST2`是两个常量成员变量,在`private`中声明。在类外不能直接初始化,但可以在构造函数中进行初始化赋值。在`main`函数中,创建一个`MyClass`对象,并将两个常量成员变量分别初始化为10和20。使用对象访问常量成员变量并输出它们的值。
2. 使用成员初始化列表进行初始化
```
class MyClass {
private:
const int MY_CONST1;
const int MY_CONST2;
public:
MyClass(int value1, int value2) : MY_CONST1(value1), MY_CONST2(value2) {} // 构造函数中初始化
};
int main() {
MyClass obj = {10, 20}; // 使用成员初始化列表进行初始化
cout << obj.MY_CONST1 << endl; // 访问常量成员变量
cout << obj.MY_CONST2 << endl;
return 0;
}
```
在上面的例子中,`MY_CONST1`和`MY_CONST2`是两个常量成员变量,在`private`中声明。在构造函数中使用成员初始化列表进行初始化。在`main`函数中,创建一个`MyClass`对象,并使用成员初始化列表将两个常量成员变量分别初始化为10和20。使用对象访问常量成员变量并输出它们的值。
需要注意的是,`const`成员变量的值在类被创建时就已经确定,并且不能在类的内部或外部进行修改。因此,`const`成员变量的初始化只能在构造函数中进行。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)