我是一名刚开始学习C ++课程的学生。
在下面的代码段中,为什么我不能从main()访问公共成员函数“差异”并传入account1和account2?错误表示差异未定义。
class BankAccount
{
public:
double difference(BankAccount account1, BankAccount account2);
private:
double balance;
double interest_rate;
double fraction(double percent);
};
int main()
{
BankAccount account1, account2;
account1.set(100, 5.0);
account2.set(203,4.0);
difference(account1, account2);
return 0;
}
void BankAccount::set(int dollars, double rate)
{
if((dollars < 0)||(rate < 0))
{
cout << "Illegal values for money or interest rate.\n";
exit(1);
}
balance = dollars;
interest_rate = rate;
}
double BankAccount::difference(BankAccount account1, BankAccount account2)
{
return account1.balance - account2.balance;
}
答案 0 :(得分:2)
此函数是非静态成员函数,因此您无法像这样调用
difference(account1, account2);
您必须像之前在此处的BankAccount
类实例一样调用它
account1.set(100, 5.0);
以您拥有的方式调用它只适用于独立功能,不成员功能。