【发布时间】:2014-11-08 15:23:27
【问题描述】:
来自Java 我对调用基类构造函数(或super())有点困惑。
我有 2 个类:Player(抽象类)和 HumanPlayer,它是 Player 的子级。
现在,我有一个带有声明的 Player 构造函数:
Player(string name, list<Point> points);
现在我正在尝试实现这种类型的东西:
HumanPlayer() {
string name = get name from user...
list<Point> points = get points from user...
...
...
...
super(name, points);
}
对 C++ 来说真的很陌生,很难使用它的语法。 问候,
【问题讨论】:
-
请查看this question。它应该为您提供正确的语法。
-
我做到了。但它迫使我在实现子构造函数之前调用超级构造函数。对我没有帮助
-
不完全确定,但你能用
Player(name, points);代替super()吗? -
没有。玩家是抽象的。
-
您通常不会在构造函数中从用户那里收集数据,尤其是在无参数构造函数中。当您将对象添加到 STL 容器时,会发生各种有趣的事情。
标签: c++ inheritance constructor super base