2016-04-07 16 views
0

C++ kodlama derlerken bu hataya rastladım. İşte benim kod:'SavingsAccount :: yearInterestRate' tanımsız başvurusu

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

}

tam hata iletisi: C: \ Users \ NURULA ~ 1 \ AppData \ Local \ Temp \ ccOIgGs2.o sınıf egzersiz 3 hiçbir 1 2.cpp ver :(rdata $ .refptr._ZN14SavingsAccount18annualInterestRateE [.refptr._ZN14SavingsAccount18annualInterestRateE] + 0x0):. the question

: `SavingsAccount :: annualInterestRate'

ve bu resme tanımsız referans soruya bir anlık i yapmaya çalışıyorum olduğunu

soru bir kurucu yapmak istemedim ama bir denge değeri başlatmak için gereken varsayarak, bir tane yaptım, ama sorun ve hata iletisine neden olan bir duygu var. haklı mıyım .... ya da yanlış?

Gelişmiş olduğunuz için teşekkür ederiz.

cevap

2

Sen ile yere annualInterestRate değişken tanımlamak gerekir:

float SavingsAccount::annualInterestRate; 

Statik değişkenler küresel değişkenler gibidir; ayrı beyanlar ve tanımlar var.