修改成员变量
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;
。
我在修改 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;
。