in read-only object
时间: 2023-04-29 21:06:35 浏览: 140
"B'in read-only object'是什么意思?"
这个错误信息通常出现在Python代码中,意思是你正在尝试修改一个只读对象。只读对象是指被定义为不可被更改的对象,如果你试图对它们进行修改,就会出现这个错误。常见的只读对象包括元组和字符串。要避免这个错误,你需要确保只对可更改对象进行修改,或者在需要更改只读对象时创建它们的可更改副本。
相关问题
assignment of member 'flash_info' in read-only object
引用\[1\]:这个警告是由于在C90标准中,不允许在代码和声明之间混合使用。\[1\]引用\[2\]:在你的代码中,你将at()方法修改为了\[\]操作符,这样程序就可以正常运行了。\[2\]引用\[3\]:在你之前的代码中,你遇到了一个问题,即在一个只读对象中对成员进行赋值。\[3\]
根据你提供的代码和问题,我可以看出你在构造函数中创建了一个QList,并将QPair插入到其中。然后,你尝试使用at()方法来访问QList中的元素,并对其成员进行赋值。然而,由于at()方法返回的是一个只读对象,所以你无法对其成员进行赋值,导致出现了报错。
解决这个问题的方法是使用\[\]操作符来访问QList中的元素,这样就可以对其成员进行赋值而不会出现报错。通过将代码中的list.at(0).second.m_num = 102;修改为list\[0\].second.m_num = 102;,你可以成功地对成员进行赋值。\[2\]
总结起来,你遇到的问题是由于对只读对象的成员进行赋值所导致的报错。通过使用\[\]操作符来访问QList中的元素,你可以解决这个问题。
#### 引用[.reference_title]
- *1* [新路程------ 编译遇错](https://blog.csdn.net/u013308744/article/details/78928887)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [assignment of member ‘QPair,Data*>::second“ in read-only object](https://blog.csdn.net/TianYanRen111/article/details/119570280)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
如何修改[Error] assignment of member 'Student::average' in read-only object
这个错误提示是因为 `average` 属性被定义为了 `const` 类型,无法在常量对象上进行赋值操作。在代码中,可能是在一个 `const` 对象上调用了修改 `average` 属性的函数,导致了这个错误。
要修复这个错误,需要检查代码,确保在常量对象上不会调用修改成员变量的函数。如果确实需要在常量对象上调用这些函数,可以将这些函数声明为 `mutable`,表示它们可以修改对象的属性,例如:
```
class Student {
public:
// ...
double average_score() const {
int sum = 0;
for (int i = 0; i < 6; i++) {
sum = sum + scores[i];
}
average = sum / 6.0; // 错误:不能在常量对象上修改属性
return average;
}
private:
// ...
mutable double average; // 将 average 声明为 mutable
};
```
这样就可以在常量对象上调用 `average_score()` 函数来计算平均分数,而不会产生上述错误。
相关推荐
![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)