Вопросы наследования - PullRequest
       6

Вопросы наследования

0 голосов
/ 25 февраля 2019

Обычно наследование должно позволять производному классу защищать базовые классы и публичные переменные.

#include <iostream>
#include <vector>
#include <string>
using namespace std;

////ACCOUNT//////
class Account {
  protected:
  string name;
  int balance; 

  public:
  Account(string n) : name{n} {
      cout << name << endl;
  }
};

////SAVINGS//////
class Savings: public Account {
    Savings(string s): name{s} {
        cout << "WTFA@A@" << endl;
    }
};

int main() {
    Account wtf ("wth");
    Savings test ("EEE");
    return 0;
}

Почему этот код выдает ошибку?Должны ли сбережения наследовать переменную имени от учетной записи?

Кроме того, если я хотел добавить функцию пополнения и снятия средств как для учетной записи, так и для сбережения, нужно ли добавлять ее по отдельности или в этом помогает наследование?Снятие одинаково для обоих, но депозит немного отличается, потому что сбережения будут иметь процентную ставку.

1 Ответ

0 голосов
/ 25 февраля 2019

Две вещи:

Во-первых, если вы хотите вызвать конструктор суперкласса, сделайте следующее:

Savings(string s): Account(s) {
     ...
}

Во-вторых, вы забыли сделать конструктор подкласса public.Методы в class es - это private по умолчанию в C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...