为什么这个公共成员功能“未定义”? (C ++)

时间:2015-11-14 16:59:14

标签: c++

我是一名刚开始学习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;
    }

1 个答案:

答案 0 :(得分:2)

此函数是非静态成员函数,因此您无法像这样调用

difference(account1, account2);

您必须像之前在此处的BankAccount类实例一样调用它

account1.set(100, 5.0);

以您拥有的方式调用它只适用于独立功能,成员功能。