【发布时间】:2013-12-01 14:16:58
【问题描述】:
如果我的基类的构造函数带参数,我如何创建一个继承自它的类,并使用派生类的构造函数执行基类的构造函数?
例如,假设我的基类的讲师接受一个整数,并用它做了一个很酷的技巧,我将如何制作它以便从它继承的所有类都可以做同样的事情
伪代码
baseClass instance(99); //does an awesome trick, nice
derivedClass instance(99); //<-- should do the same as above
正如我现在所拥有的,我已经定义了我的基类的构造函数,但是对于派生类,我将它的构造函数留空,因为我希望它完全按照基类构造函数所做的,仅此而已。但是,这给了我一个错误:没有对'baseClass()'的匹配函数调用,候选者是:baseClass(int),候选者需要1个参数,提供0个
我必须将基类的构造函数设为虚拟还是什么?
【问题讨论】:
-
编辑:这是错误的信息。更新:你使用
derivedClass() : baseClass(7){} -
另外,除非
base包含纯虚函数,否则您应该删除abstract-class标签。 -
如果基类的构造函数改变了使用它的基类的实例怎么办?它还会改变派生类的实例吗? @戴夫
-
@user1538301,怎么改?在构造函数运行之前没有有效的实例。
标签: c++ inheritance constructor polymorphism abstract-class