继承问题

时间:2019-02-25 19:44:16

标签: c++ inheritance

通常,继承应该使派生类具有受保护的基类和公共变量。

#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 :(得分:2)

两件事:

首先,如果要调用超类的构造函数,请执行以下操作:

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

第二,您忘记了创建子类​​的构造函数public。在C ++中,class中的方法默认为private