如何在基类构造函数中为每个子类执行特定任务

zhenyu wang

我有一个基类。例如:

class CData{
public:
    CData(const std::string &_filename)
    {
        m_filename = _filename;
        // LodaData(); // wrong
    }

    virtual void LoadData() = 0;
private:
    std::string m_filename;
};

而且,一个子类:

class COtherData: public CData{
public:
    COtherData(const std::string &_filename): CData(_filename) {}

    virtual void LoadData() {
    // some code to load data
    ...
    }
};

我想知道如何在子类的基类中执行一些任务。

瓦汉乔

问题是你从构造函数调用虚函数 - 你应该避免它。相反,您需要向基类添加一个函数来调用您的虚函数,最终调用子类的重写函数。因此,我将通过以下方式更改您的基类:

class CData
{
public:
    CData(const std::string &_filename)
        : m_filename(_filename)
    {}

    void performTask()
    {
        LoadData();
        // ... do something else
    }

    virtual void LoadData() = 0;
private:
    std::string m_filename;
};

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何停止在子类中调用基类的构造函数

来自分类Dev

从基类访问并执行子类中的函数

来自分类Dev

Dart-如何在子类的构造函数中调用超类的工厂构造函数?

来自分类Dev

如何在Scala中从派生类辅助构造函数调用辅助基类构造函数?

来自分类Dev

如何在Scala中从派生类辅助构造函数调用辅助基类构造函数?

来自分类Dev

在基类构造函数中获取子类的名称

来自分类Dev

如何在子类构造函数中调用父构造函数?

来自分类Dev

如何在Codeigniter中将父类构造函数访问子类

来自分类Dev

如何在Scala中为子类实现DRY复制构造函数?

来自分类Dev

从子类的构造函数体中调用基类的构造函数

来自分类Dev

在超类构造函数中指定哪个子类

来自分类Dev

使用基类构造函数的子类构造函数的轮廓定义

来自分类Dev

如何覆盖子类中的抽象类构造函数

来自分类Dev

在构造函数中为创建的每个对象更改类变量

来自分类Dev

如何在模板派生类中调用模板基类的构造函数?

来自分类Dev

如何在C ++中从基类构造函数调用派生类方法?

来自分类Dev

如何在基类中使用子类的函数属性?

来自分类Dev

如何在SSRS中为每个子组重复组头

来自分类Dev

如何在构造函数中为不同的类使用模板化的类

来自分类Dev

如何在Swift子类中实现复制构造函数?

来自分类Dev

如何在运行时根据构造函数参数在超类中创建子类对象(在Java中)

来自分类Dev

如何实现每个子类不同的类常量?

来自分类Dev

如何在父类的函数中调用子类的函数

来自分类Dev

如何在工厂中为延迟实例化指定具体类/如何延迟构造函数调用

来自分类Dev

为模块中的每个子类型生成方法

来自分类Dev

如何在基类中创建子类对象

来自分类Dev

编译器在调用基类构造函数之前会在子类构造函数中寻找** super **关键字吗?

来自分类常见问题

用于将多态基类的子类数组传递到构造函数中的最简单语法

来自分类Dev

用于将多态基类的子类数组传递到构造函数中的最简单语法

Related 相关文章

  1. 1

    如何停止在子类中调用基类的构造函数

  2. 2

    从基类访问并执行子类中的函数

  3. 3

    Dart-如何在子类的构造函数中调用超类的工厂构造函数?

  4. 4

    如何在Scala中从派生类辅助构造函数调用辅助基类构造函数?

  5. 5

    如何在Scala中从派生类辅助构造函数调用辅助基类构造函数?

  6. 6

    在基类构造函数中获取子类的名称

  7. 7

    如何在子类构造函数中调用父构造函数?

  8. 8

    如何在Codeigniter中将父类构造函数访问子类

  9. 9

    如何在Scala中为子类实现DRY复制构造函数?

  10. 10

    从子类的构造函数体中调用基类的构造函数

  11. 11

    在超类构造函数中指定哪个子类

  12. 12

    使用基类构造函数的子类构造函数的轮廓定义

  13. 13

    如何覆盖子类中的抽象类构造函数

  14. 14

    在构造函数中为创建的每个对象更改类变量

  15. 15

    如何在模板派生类中调用模板基类的构造函数?

  16. 16

    如何在C ++中从基类构造函数调用派生类方法?

  17. 17

    如何在基类中使用子类的函数属性?

  18. 18

    如何在SSRS中为每个子组重复组头

  19. 19

    如何在构造函数中为不同的类使用模板化的类

  20. 20

    如何在Swift子类中实现复制构造函数?

  21. 21

    如何在运行时根据构造函数参数在超类中创建子类对象(在Java中)

  22. 22

    如何实现每个子类不同的类常量?

  23. 23

    如何在父类的函数中调用子类的函数

  24. 24

    如何在工厂中为延迟实例化指定具体类/如何延迟构造函数调用

  25. 25

    为模块中的每个子类型生成方法

  26. 26

    如何在基类中创建子类对象

  27. 27

    编译器在调用基类构造函数之前会在子类构造函数中寻找** super **关键字吗?

  28. 28

    用于将多态基类的子类数组传递到构造函数中的最简单语法

  29. 29

    用于将多态基类的子类数组传递到构造函数中的最简单语法

热门标签

归档