继承类构造函数
c++ Inheritance class constructor
我有一个小问题,老实说,我完全混淆了派生类构造函数,需要一些帮助。
我有一个带有参数化构造函数的基类:Element::Element(RandomNumber &rnd, Console &console)
: rnd(rnd), console(console)
和
的派生类构造函数Jetsam::Jetsam(RandomNumber rnd, Console console):Element(rnd,console)
基本上,我想将基类构造函数中使用的参数传递给派生类构造函数。我已经尝试了许多不同的方法,目前我得到的错误信息是'no initializer for'。
有没有人对我有任何帮助,或者可以帮助我了解我的问题。如有任何帮助,不胜感激。感谢您的宝贵时间,
Alyn .
编辑:IntelliSense: "Jetsam::Jetsam(RandomNumber rnd, Console console)" provides no initializer for: e:c++my gamemy gamejetsam.cpp 7
编辑:Element::Element(RandomNumber &rnd, Console &console)
: rnd(rnd), console(console)
{
}
Jetsam::Jetsam(RandomNumber rnd, Console console):Element(rnd,console)
{
}
Jetsam::Jetsam(RandomNumber rnd, Console console): Element::Element(rnd,console);
Ref my comment -如果你的成员变量被声明为引用,你需要像这样定义你的派生构造函数:
Jetsam::Jetsam(RandomNumber &rnd, Console &console):Element(rnd,console)
例如,下面的代码对我来说可以编译:
// dummy classes for use as member variables
class RandomNumber{};
class Console{};
// base class
class Element
{
public:
Element(RandomNumber &rnd, Console &console) : rnd(rnd), console(console) {}
// member variables
RandomNumber& rnd;
Console& console;
};
// derived class
class Jetsam : public Element
{
public:
Jetsam(RandomNumber &rnd, Console &console) : Element(rnd, console) {}
};
我假设你的声明与上面的类似。如果有明显的不同,你能修改你的问题吗?
相关文章:
- 具有相同名称的类的构造函数继承
- 多复制构造函数继承中的惊人行为
- CRTP 和复制/移动赋值/构造函数继承
- 复制构造函数继承动态分配的数组
- 无法从 c++ 中的构造函数继承
- 在构造函数继承中使用默认构造函数
- 构造函数继承和直接成员初始化
- C++ - 使用私有参数的构造函数继承
- 通过可变参数模板进行C++11构造函数继承
- C++11构造函数继承和不带参数的构造函数
- C++11 - 构造函数继承
- C++构造函数继承
- 使用 C++11 编译器的构造函数继承正在生成错误
- 选择性构造函数继承"Ambiguous resolution"错误
- 什么是构造函数继承
- C++对象中的构造函数继承与方法继承
- C++构造函数继承没有匹配的函数
- C++构造函数继承(从派生类调用构造函数)
- 模板构造函数继承的标准符合语法是什么
- C++构造函数继承错误