为什么这个公共成员功能"undefined"?(C++)

Why is this public member function "undefined"? (C++)

本文关键字:undefined C++ 功能 成员 为什么      更新时间:2023-10-16

我是一个刚开始学习C++课程的学生。

在下面的代码段中,为什么我不能从main()访问公共成员函数"difference"并传入account1和account2?Error说差异是未定义的。

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

此函数是一个非静态成员函数,因此不能像这样调用

difference(account1, account2);

您必须在类BankAccount的实例上调用它,就像您之前在中所做的那样

account1.set(100, 5.0);

以现有方式调用它只适用于独立函数,不适用于成员函数。