基类:
class SavingsAccount
{
public:
void AddInterest(); // add interest to balance based on APR (interest rate)
private:
static double APR;
double Balance;
}
class CheckingAccount: public SavingsAccount
{
private:
static double APR;
}
为简单起见,我省略了不相关的成员/方法等。
所以,情况是这样的: aCheckingAccount
应该和 a 一样SavingsAccount
,但是它应该有不同的 APR(利率)。所有SavingsAccounts
共享相同APR
并且都CheckingAccounts
共享自己的APR
(因此变量是静态的)。这是一个赋值,我们应该为APR
s 使用静态成员变量。
从我的研究和测试来看,我似乎找不到任何方法来覆盖类中的AddInterest()
方法CheckingAccount
以使其使用CheckingAccount::APR
。如果是这种情况,则SavingsAccount
必须重写 from 的大多数方法,因为许多方法使用APR
,这似乎扼杀了学习继承类的意义。
我错过了什么吗?
方法,AddInterest()
供参考:
SavingsAccount::AddInterest()
{
double interest = (this->APR/100)/12 * this->getBalance();
this->setBalance(this->getBalance() + interest);
}
编辑:我遇到的原始问题(在覆盖 APR 之前CheckingAccount
)如下:
int main()
{
SavingsAccount sav;
CheckingAccount chk;
sav.setAPR(0.2);
chk.setAPR(0.1);
cout << sav.getAPR() << endl; // OUTPUTS "0.1"!!
return 0;
}
修改对象的APR 会CheckingAccount
修改对象的 APR !这对我来说很有意义,因为它是静态的,但我不确定最好的解决方案是什么。APR
SavingsAccount
APR