Assume the existence of a BankAccount class. Define a derived class, SavingsAccount that contains two instance variables: the first a double, named interestRate, and the second an integer named interestType. The value of the type variable can be 1 for simple interest and 2 for compound interest. There is also a constructor that accepts two parameters : a double that is used to initialize the interestRate variable , and a string that you may assume will contain either “Simple”, or “Compound”, and which should be used to initialize the type variable appropriately. There should also be a pair of functions getInterestRate and getInterestType that return the values of the corresponding data members (as double and int respectively).

LANGUAGE: C++

CHALLENGE:

Assume the existence of a BankAccount class. Define a derived class, SavingsAccount that contains two instance variables: the first a double, named interestRate, and the second an integer named interestType. The value of the type variable can be 1 for simple interest and 2 for compound interest. There is also a constructor that accepts two parameters : a double that is used to initialize the interestRate variable , and a string that you may assume will contain either “Simple”, or “Compound”, and which should be used to initialize the type variable appropriately. There should also be a pair of functions getInterestRate and getInterestType that return the values of the corresponding data members (as double and int respectively).

SOLUTION:


class SavingsAccount :public BankAccount{
  public:
    SavingsAccount();
    SavingsAccount(double,string);
    double getInterestRate();
    int getInterestType();

  private:
    double interestRate;
    int interestType;
    int type;
};

SavingsAccount::SavingsAccount(){
    interestRate = 0;
    interestType = 0;
}

SavingsAccount::SavingsAccount(double a,string b){
    interestRate = a;
    if (b == "Simple"){
        interestType = 1;
    }else if(b == "Compound"){
        interestType = 2;
    }

}

double SavingsAccount::getInterestRate(){
    return interestRate;
}

int SavingsAccount::getInterestType(){
    return interestType ;
}