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
答案 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
继承的公共成员变量。