当父类在 C++ 中没有默认构造函数时,如何在继承的类中使用构造函数?

眼镜蛇1986

我在我的一门大学课程中有一项编程任务。教授给了我们具体的代码,并告诉我们不要修改他的代码。我应该创建一个名为 GameMgr 的类,它继承自一个名为 Mgr 的类。这是他为 Mgr.h 提供的简化版本:

class Engine;

class Mgr 
{
public:
    Engine *engine;

    Mgr(Engine *eng);
    virtual ~Mgr();
};

我正在尝试创建一个名为 GameMgr 的类:

class GameMgr: public Mgr
{
public:
    GameMgr(Engine* eng);
    void Run();
};

尝试编译代码时出现错误:

error: no matching function for call to ‘Mgr::Mgr()’
 GameMgr::GameMgr(Engine* eng)
                             ^

我在 CodePad 上做了一个例子(pad 中的例子只是针对这个问题,不是我的实际代码,而是显示了这个问题所需的最少代码)。

我曾尝试向 GameMgr 类添加默认构造函数,但仍然出现错误。我假设它可以完成,因为它是我教授的代码,但我知道解决它的唯一方法是将 Mgr 类更改为具有 Mgr()。

当父类在 C++ 中没有默认构造函数时,如何在继承的类中使用构造函数?

我尝试了这个问题的解决方案:如何调用基类构造函数?在我的 CodePen 示例中,它仍然无法正常工作。因此,我认为这不是我问题的解决方案。

理士

你可以试试这个例子。我使用了一个int来简化。

#include <iostream>
using namespace std;
class Mgr 
{
public:
    int a;
    Mgr(int _a):a(_a){}
    virtual ~Mgr(){}
};

class GameMgr: public Mgr
{
public:
    GameMgr(int _b):Mgr(_b) {}
    ~GameMgr(){}
    void Run();
};

int main() {
    GameMgr game_mgr(9);
    return 0;
}

示例代码

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C ++中的类构造函数中使用线程?

来自分类Dev

继承List <T>时,如何在没有构造函数的情况下将数据传递给父类?C#

来自分类Dev

如何在C ++中使用构造函数(只是构造函数)在类中初始化大型私有数组?

来自分类Dev

C++:父类不存在默认构造函数

来自分类Dev

尝试从C ++中的构造函数继承自类时出错

来自分类Dev

C ++模板类“没有合适的默认构造函数”

来自分类Dev

C ++将父指针传递给父类构造函数

来自分类Dev

“使用”父类构造函数和在 C++ 中创建一个新的构造函数有什么区别?

来自分类Dev

从C ++中的私有模板类继承构造函数

来自分类Dev

在 C++ 中使用模板调用派生类中父类的构造函数的正确语法是什么?

来自分类Dev

没有调用基类构造函数的C#中的继承问题

来自分类Java

如何通过使用C ++中的构造函数获取父类的变量来在子类中实现Abstarct类的方法

来自分类Dev

构造函数中使用lambda的C ++类

来自分类Dev

如何继承获取类对象的类构造函数C ++

来自分类Dev

将一个类传递给另一类的构造函数时,C ++没有默认的构造函数错误

来自分类Dev

如何在Lua用户数据中注册C ++类构造函数并默认使用它

来自分类Dev

如何在dart中使用抽象类执行继承?错误:超类SpanishData没有零参数构造函数

来自分类Dev

C#如何只向父类的成员公开嵌套类的构造函数?

来自分类Dev

C#如何在字典中存储类构造函数

来自分类Dev

C ++实例化对象,该对象在另一个没有指针的类构造函数中没有默认构造函数

来自分类Dev

C ++-如何在另一个类中使用私有构造函数实例化对象

来自分类Dev

如何在 C++ 中使用具有另一个类对象的构造函数?

来自分类Dev

如何在C ++中使用通用引用参数为模板类编写构造函数

来自分类Dev

如何在类构造函数中使用C ++ 11随机引擎和均匀分布?

来自分类Dev

如何在类构造函数中使用方法数据 c# xamarin

来自分类Dev

如何在C++中调用父类的重写函数?

来自分类Dev

继承类C#中的空构造函数

来自分类Dev

在类体之外定义函数时,c ++派生的构造函数-“无默认构造函数”

来自分类Dev

具有默认参数的C ++基类构造函数

Related 相关文章

  1. 1

    如何在C ++中的类构造函数中使用线程?

  2. 2

    继承List <T>时,如何在没有构造函数的情况下将数据传递给父类?C#

  3. 3

    如何在C ++中使用构造函数(只是构造函数)在类中初始化大型私有数组?

  4. 4

    C++:父类不存在默认构造函数

  5. 5

    尝试从C ++中的构造函数继承自类时出错

  6. 6

    C ++模板类“没有合适的默认构造函数”

  7. 7

    C ++将父指针传递给父类构造函数

  8. 8

    “使用”父类构造函数和在 C++ 中创建一个新的构造函数有什么区别?

  9. 9

    从C ++中的私有模板类继承构造函数

  10. 10

    在 C++ 中使用模板调用派生类中父类的构造函数的正确语法是什么?

  11. 11

    没有调用基类构造函数的C#中的继承问题

  12. 12

    如何通过使用C ++中的构造函数获取父类的变量来在子类中实现Abstarct类的方法

  13. 13

    构造函数中使用lambda的C ++类

  14. 14

    如何继承获取类对象的类构造函数C ++

  15. 15

    将一个类传递给另一类的构造函数时,C ++没有默认的构造函数错误

  16. 16

    如何在Lua用户数据中注册C ++类构造函数并默认使用它

  17. 17

    如何在dart中使用抽象类执行继承?错误:超类SpanishData没有零参数构造函数

  18. 18

    C#如何只向父类的成员公开嵌套类的构造函数?

  19. 19

    C#如何在字典中存储类构造函数

  20. 20

    C ++实例化对象,该对象在另一个没有指针的类构造函数中没有默认构造函数

  21. 21

    C ++-如何在另一个类中使用私有构造函数实例化对象

  22. 22

    如何在 C++ 中使用具有另一个类对象的构造函数?

  23. 23

    如何在C ++中使用通用引用参数为模板类编写构造函数

  24. 24

    如何在类构造函数中使用C ++ 11随机引擎和均匀分布?

  25. 25

    如何在类构造函数中使用方法数据 c# xamarin

  26. 26

    如何在C++中调用父类的重写函数?

  27. 27

    继承类C#中的空构造函数

  28. 28

    在类体之外定义函数时,c ++派生的构造函数-“无默认构造函数”

  29. 29

    具有默认参数的C ++基类构造函数

热门标签

归档