Я получил ошибку, как я упомянул в заголовке.
Ниже приведен код
#include <iostream>
using namespace std;
class SavingsAccount {
private:
double savingsBalance;
static double AnnualInterestRate;
public:
static void ModifyInterestRate(double rate) {
AnnualInterestRate = rate;
}
double calculateMonthlyInterest(double bal) {
double total, newbal;
total = (bal * AnnualInterestRate) / 12;
newbal = bal + total;
return newbal;
}
};
int main(){
SavingsAccount saver1,saver2;
double s1, s2;
SavingsAccount::ModifyInterestRate(0.03);
s1 = saver1.calculateMonthlyInterest(2000.00);
s2 = saver2.calculateMonthlyInterest(3000.00);
cout << "Monthly Interest Saver 1: " << s1 << endl;
cout << "Monthly Interest Saver 2: " << s2 << endl;
SavingsAccount::ModifyInterestRate(0.04);
s1 = saver1.calculateMonthlyInterest(2000.00);
s2 = saver2.calculateMonthlyInterest(3000.00);
cout << "Monthly Interest Saver 1: " << s1 << endl;
cout << "Monthly Interest Saver 2: " << s2 << endl;
return 0;
}
Проблема заключается в статическом двойном элементе AnnualInterestRate. Я пытался исправить это в течение 3 часов, но все еще не могу помочь моим глазам.
Ошибки:
Error LNK2001 unresolved external symbol "private: static double SavingsAccount::AnnualInterestRate" (?AnnualInterestRate@SavingsAccount@@0NA)
Error LNK1120 1 unresolved externals