'Modifying a member variable [closed]

I'm having an issue with modifying a member of a class. I overloaded the operators and I think that I am calling the member correctly to modify it but am getting the issue that the "expression must be a modifiable l-value. Any help would be appreciated .h file

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

.cpp file

   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;
    }

main file

//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; 

        }


Solution 1:[1]

Your set_balance function doesn't set anything. You probably want this:

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

Then you can do user1.get_balance() += withdraw;.

This get_balance function gets the balance as a modifiable l-value, which is what you need.

Since you have an operator+=, you could also just do user1 += withdraw;.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 David Schwartz