修改成员变量

Modifying a member variable

我在修改 class 的成员时遇到问题。我重载了运算符,我认为我正在正确调用成员来修改它,但我遇到的问题是“表达式必须是可修改的左值。 任何帮助,将不胜感激 .h 文件

public:
    account& operator+= (float x);
    account& operator-= (float y);
    float set_balance();

.cpp 文件

   account& account::operator+=(float x)
    {
        this->acct_balance += x;
        return *this;
    }
    account& account::operator+=(float y)
    {
        this->acct_balance -= y;
        return *this;
    }
    float account::set_balance()
    {
        return this->acct_balance;
    }

主文件

//deposit
        else if (imput == 2)
        {
            float deposit;
            cout << "Please enter the amount to deposit: ";
            cin >> deposit;
            user1.set_balance() += deposit;

        }
        //withdrawl
        else if (imput == 3)
        {
            float withdraw;
            cout << "Please enter the amount to deposit: ";
            cin >> withdraw;
            user1.set_balance() += withdraw; 

        }

您的 set_balance 函数没有设置任何内容。你可能想要这个:

float& account::get_balance()
{
    return this->acct_balance;
}

那么你可以user1.get_balance() += withdraw;.

get_balance 函数获取余额作为可修改的 l-value,这正是您所需要的。

既然你有一个 operator+=,你也可以只做 user1 += withdraw;