2011-11-02 137 views
-3
Class Loan { 
public: 
    Loan (); 
    Loan (double amt, double rate, int term); 

    double get_loanAmt () const; 
    double get_intRate () const; 
    double get_termOfLoan () const; 

    void setAmt (double amt); 
    void setRate (double rate); 
    void setTerm (int term); 

    void output (ostream & out) const; 
    double calculate_interest () const; 

protected: 
    double loanAmt; 
    double intrate; 
    int termOfLoan; 
}; 

這一段代碼,我寫道:改變公衆對私人

double Carloan::calculate_interest () const { 
    return (2 * loanAmt * intRate * termOfLoan); 
} 

我試圖改變Loan類的成員變量的訪問私人 ,但該行的calculate_interestCarloan給了我一個編譯錯誤。

我已經試過這樣:

Public: 
    void setTerm (int term); 
    double get_termOfLoan () const; 

Private: 
    double int rate; 
    double int loanAmt; 
+0

lol對不起,忽略拼寫錯誤,我犯了一個錯誤,它被認爲是loanAmt不loanaAmt ..... errror不能biuld – user1000441

+0

怎麼了所有的' - '跡象...? –

+0

想讓大膽的文字,以便人民幣可以看到它對不起,即時通訊此新網站... – user1000441

回答

2

你的類名Loan,不Carloan。改變它,它會工作。

0

我猜你有一個類CarLoan繼承自Loan

protected訪問說明符允許訪問派生類。如果將Loan成員變量(如loanAmt)更改爲private而不是protected,則CarLoan將不再能夠訪問該成員變量。這就是爲什麼(大概)你得到編譯錯誤。

由於Loan提供公共getter方法,可以使CarLoan使用這些方法而不是訪問Loan的私有成員:

double CarLoan::calculate_interest () const { 
    return (2 * get_loanAmt() * get_intRate() * get_termOfLoan()); 
} 

這裏,get_loanAmt()get_intrate()get_termOfLoan()是公開的成員變量CarLoan繼承從Loan