将公众变为私人

时间:2011-11-02 05:24:14

标签: c++

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的成员变量的访问权限更改为私有 但是Carloan的{​​{1}}行给了我一个编译错误。

我试过这个:

calculate_interest

2 个答案:

答案 0 :(得分:2)

您的班级名称为Loan,而不是Carloan。改变它,它会工作。

答案 1 :(得分:0)

我猜你有一个继承自CarLoan的课程Loan

protected访问说明符可以访问派生类。如果您将Loan成员变量改为loanAmt,而不是private,那么protected将无法再访问该成员变量。这就是(大概)你得到编译错误的原因。

由于CarLoan提供了公共getter方法,因此您可以Loan使用这些方法而不是访问CarLoan的私有成员:

Loan

此处,double CarLoan::calculate_interest ( ) const { return ( 2 * get_loanAmt() * get_intRate() * get_termOfLoan() ); } get_loanAmt()get_intrate()get_termOfLoan()CarLoan继承的公共成员变量。