C++设计结构体部分成员变量可修改
时间: 2023-11-25 19:05:58 浏览: 42
在C++中,结构体的成员变量可以分为两类:可修改的和不可修改的。如果结构体的成员变量被声明为const或者引用类型,那么这些成员变量是不可修改的。否则,这些成员变量是可修改的。
下面是一个示例代码,其中结构体的一部分成员变量是可修改的:
```
struct Person {
std::string name;
int age;
mutable int weight; // mutable关键字表示该成员变量可以在const成员函数中修改
};
void printPerson(const Person& p) {
std::cout << "Name: " << p.name << std::endl;
std::cout << "Age: " << p.age << std::endl;
std::cout << "Weight: " << p.weight << std::endl;
}
int main() {
Person p{"John", 30, 70};
printPerson(p);
// 修改weight成员变量
p.weight = 75;
printPerson(p);
return 0;
}
```
在上面的代码中,weight成员变量被声明为mutable,表示可以在const成员函数中修改。因此,即使在printPerson函数中使用了const引用,也可以修改weight成员变量。
需要注意的是,如果成员变量被声明为const或者引用类型,那么它们只能在构造函数中进行初始化,不能在其他成员函数中修改。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)