bool Car::isEnoughFuel(int miles) const
{
drivableMiles = fuelGauge.getCurrentFuel() * MPG; // Error here
bool status = true;
if (miles > drivableMiles)
status = false;
return status;
}
错误:表达式必须是可修改的左值。
答案 0 :(得分:1)
使用
const
关键字声明成员函数将指定该函数是“只读”函数,不会修改为其调用对象的对象。常量成员函数无法修改任何非静态数据成员,也不能调用任何非常量成员函数。 (Source)
在drivableMiles = fuelGauge.getCurrentFuel() * MPG;
行中,您试图修改对象isEnoughFuel()
的调用。您可能不想拥有const
的功能。但是,一种解决方法是改为使用副本。