赋值表达式出现报错:expression must be a modifiable lvalue

问题

我在一个类的cpp文件中,修改一个成员函数,在函数中进行对私有成员变量total_torque_thrust_的赋值操作,但是却报了如下错误:

no operator "=" matches these operands

或者,

expression must be a modifiable lvalue(表达式必须是可修改的左值)

赋值表达式出现报错:expression must be a modifiable lvalue_第1张图片

解决

后面看见这篇博客:在函数后面加const,深受启发。
文章里说,函数名后加const使类成员函数不能修改类内成员!
赋值表达式出现报错:expression must be a modifiable lvalue_第2张图片

果然我修改的那个成员函数后面有一个const,删掉这个const就不会报错了。

在这里插入图片描述
这也解释了我一开始的一个疑问,为什么同样是对私有成员变量赋值,有的函数(比如下面这个)就不会报错,因为他们没有在后面加const来表示只读。
在这里插入图片描述

你可能感兴趣的:(c++)