[Error] assignment of member 'Student::score' in read-only object
时间: 2024-10-21 20:03:16 浏览: 32
这个错误出现在C++编程中,当你尝试修改一个常量成员(通常是const修饰的)的值时。"Student::score"是一个常量指针,表示Student类的一个常量成员变量"score"。在C++中,一旦一个对象被声明为常量(const),其成员也是不可修改的。
例如:
```cpp
const Student student; // 学生student是常量
student.score = 90; // 这会报错,因为试图给常量score赋值
```
解决这个问题的方法是在创建对象时就不要声明为常量,或者如果确实需要保护数据不变,可以在类里提供一个非常量的访问方法来进行修改:
```cpp
class Student {
public:
void setScore(int score) { this->score = score; } // 提供一个修改score的方法
private:
int score;
};
```
然后你可以通过`setScore()`方法来改变分数:
```cpp
Student student;
student.setScore(90); // 正确的方式
```
阅读全文