2016-04-07 23 views
0

私のC++コードをコンパイル中にこのエラーが発生しました。 は、ここに私のコードです:`SavingsAccount :: annualInterestRate 'への未定義の参照

#include<iostream> 
#include<iomanip> 

using namespace std; 

class SavingsAccount 
{ 
private: 
    static float annualInterestRate; 
    float savingBalance; 

public: 
    float calculateMonthlyInterest() 
     {return savingBalance+=(savingBalance*annualInterestRate)/12;}//adding the interest to savingBalance 

    static void modifyInterestRate(float r) 
    {annualInterestRate=r;}//modify the annualInterestRate 

    SavingsAccount(float saving)//constructor with argument to set savingValue 
    {savingBalance=saving;} 

}; 


int main() 
{ 
SavingsAccount saver1(2000.00), saver2(3000.00);//instantiate 2 different SavingsAccount object 

SavingsAccount::modifyInterestRate(0.03);//set new interest to 3% 
//printing savers' new balance after 3% interest applied 
cout<<"THIS MONTH (3% INTEREST) :\n"; 
cout<<fixed<<setprecision(2)<<"Saver 1 balance : RM "<<saver1.calculateMonthlyInterest(); 
cout<<"\nSaver 2 balance : RM "<<saver2.calculateMonthlyInterest(); 

SavingsAccount::modifyInterestRate(0.04);//set new interest to 4% 
//printing savers' new balance after 4% interest applied 
cout<<"\n\nNEXT MONTH (4% INTEREST) :\n"; 
cout<<"Saver 1 balance : RM "<<saver1.calculateMonthlyInterest(); 
cout<<"\nSaver 2 balance : RM "<<saver2.calculateMonthlyInterest(); 

return 0; 

}

完全なエラーメッセージ: C:\ Users \ユーザーNURULA〜1 \のAppData \ローカル\一時\のccOIgGs2.oクラスエクササイズ3なし1 2.cpp版:(RDATA $ .refptr._ZN14SavingsAccount18annualInterestRateE [.refptr._ZN14SavingsAccount18annualInterestRateE] +は0x0):。 `SavingsAccount :: annualInterestRate」

に未定義の参照と、この絵は私がやろうとしている質問のスナップショットです: the question

質問はコンストラクタを作成するようには要求しませんでしたが、バランス値を初期化する必要があると仮定して1つ作成しましたが、問題とエラーメッセージの原因となっているようです。私は正しい? ....または間違っている?

先進的にお願い致します。

答えて

2

であなたは、どこかannualInterestRate変数を定義する必要があります:静的変数はグローバル変数のようなものです

float SavingsAccount::annualInterestRate; 

。別々の宣言と定義があります。

関連する問題