C++ 未解析外部,未解析外部符号LNK 1120

C++ 未解析外部,未解析外部符号LNK 1120,c++,C++,我正在制作一个银行账户程序,不明白为什么我一直出现以下错误: 错误5错误LNK1120:1个未解析的外部 我有一个超类银行账户和一个儿童类支票账户 银行账户。h: #pragma once #include <iostream> #include <string> #include <vector> using namespace std; class BankAccount { public: BankAccount::BankAccount()

我正在制作一个银行账户程序,不明白为什么我一直出现以下错误:

错误5错误LNK1120:1个未解析的外部

我有一个超类银行账户和一个儿童类支票账户

银行账户。h:

#pragma once
#include <iostream>
#include <string>
#include <vector>
using namespace std;

class BankAccount
{
public: 
    BankAccount::BankAccount();
    BankAccount::~BankAccount();
    virtual void depsoit(double money) = 0;
    virtual double withdraw(double money) = 0;
    virtual double getBalance() = 0;
    virtual void endOfMonth() = 0;

private:
    double balance;

};
#pragma一次
#包括
#包括
#包括
使用名称空间std;
类别银行帐户
{
公众:
BankAccount::BankAccount();
银行账户::~BankAccount();
虚空部门(双倍货币)=0;
虚拟双倍取款(双倍取款)=0;
虚拟双getBalance()=0;
虚空endOfMonth()=0;
私人:
双平衡;
};
银行帐户

#include "BankAccount.h"
#include <iostream>
#include <vector>
using namespace std;

BankAccount::BankAccount()
{
    balance = 0;
}

BankAccount::~BankAccount()
{

}
#包括“BankAccount.h”
#包括
#包括
使用名称空间std;
BankAccount::BankAccount()
{
余额=0;
}
银行账户::~BankAccount()
{
}
支票账户

#pragma once
#include "BankAccount.h"
#include <vector>
#include <iostream>
using namespace std;
class CheckingAccount :
    public BankAccount
{
public:
    CheckingAccount();
    ~CheckingAccount();
    void depsoit(double money);
    double withdraw(double request);
    double getBalance();
    void endOfMonth();
private:
    double checkingBalance=0;
    int transactionLimit = 5;
    float fee = .05;
    double fees=0;
    vector <double> feeTransactions;

};
#pragma一次
#包括“BankAccount.h”
#包括
#包括
使用名称空间std;
类别检查帐户:
公共银行账户
{
公众:
CheckingAccount();
~CheckingAccount();
无效部门(双倍货币);
双重撤回(双重请求);
双getBalance();
void endOfMonth();
私人:
复核余额=0;
int transactionLimit=5;
浮动费用=.05;
双重费用=0;
向量交易;
};
CheckingAccount.cpp

#include "CheckingAccount.h"
#include <iostream>
#include <vector>
using namespace std;

CheckingAccount::CheckingAccount()
{
    checkingBalance = 0;
}



CheckingAccount::~CheckingAccount()
{

}



void CheckingAccount::depsoit(double money)
{
    if (transactionLimit > 0)
    {
        transactionLimit--;
        cout << "You have " << transactionLimit << " transactions left";
        checkingBalance += money;

    }
    else
    {
        feeTransactions.push_back(money);
        cout << "Your transaction went through but you incurred a fee";
        checkingBalance += money;
    }
}
double CheckingAccount::withdraw(double request)
{
    if (checkingBalance < request)
    {
        cout << "Sorry you do not have the available funds";
        return 0.0;
    }
    else if (transactionLimit > 0)
    {
        transactionLimit--;
        cout << "You have " << transactionLimit << " transactions left";
        checkingBalance -= request;
        return request;

    }
    else
    {
        feeTransactions.push_back(request);
        cout << "Your transaction went through but you incurred a fee";
        checkingBalance -= request;
        return request;
    }

}

double CheckingAccount::getBalance()
{
    return checkingBalance;
}

void CheckingAccount::endOfMonth()
{
    for (int i = 0; i < feeTransactions.size(); i++)
    {
        fees = feeTransactions[i] * fee;
    }
    checkingBalance -= fees;
}
#包括“CheckingAccount.h”
#包括
#包括
使用名称空间std;
CheckingAccount::CheckingAccount()
{
支票余额=0;
}
CheckingAccount::~CheckingAccount()
{
}
作废支票账户::部门(双倍货币)
{
如果(transactionLimit>0)
{
交易限额--;

cout您没有在此处声明CheckingAccount类型的变量:

CheckingAccount test();
您要做的是声明一个函数测试,它返回一个CheckingAccount类型的对象,并且不接受任何参数

按如下方式操作:

CheckingAccount test{};
您应该按如下方式调用getBalance:

CheckingAccount test{};

test.getBalance();
而不是
test().getBalance();

错误会准确地告诉您问题出在哪里。主要是:
test().getBalance();
。您调用的
test
是一个函数,但它是一个对象名。它应该是
test.getBalance()
。前一行也应该没有
()
,但是在那里应该没有问题,因为在这种情况下,编译器将它们视为构造函数。

test.getBalance();返回以下错误:错误2错误C2228:“.getBalance”的左侧必须具有类/struct/unionWell尝试将前一行更改为仅检查帐户测试;
。可能编译器不喜欢其中的
()
。然后
测试.getBalance()
应该行得通。我修改代码后代码就行了。非常感谢您的帮助,我非常感谢