通常,继承应该使派生类具有受保护的基类和公共变量。
#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;
}
为什么该代码给我一个错误?储蓄应该从帐户继承名称变量吗?
此外,如果我想在“帐户”和“储蓄”中都添加一个存款和取款功能,我是否必须单独添加它,还是继承对这有帮助?两者的提款相同,但是存款略有不同,因为储蓄的利率很高。
答案 0 :(得分:2)
两件事:
首先,如果要调用超类的构造函数,请执行以下操作:
Savings(string s): Account(s) {
...
}
第二,您忘记了创建子类的构造函数public
。在C ++中,class
中的方法默认为private
。