c++ - 无需重复代码的继承

标签 c++ class inheritance

我有 4 个类(class),比方说:A 类、B 类、C 类和 D 类。

  1. B 类继承自 A 类。

  2. C类和D类继承自B类。

  3. A 类和 B 类是抽象类。

我想在类 A 中声明一个字段,假设 int position 并通过分配参数值 (int parameterValue) 添加到该字段。

是否有任何解决方案可以在不在所有后代类的构造函数中复制 position = parameterValue 行的情况下执行此操作?

最佳答案

您可能会使用继承的构造函数:

struct A
{
    A(int position) : position(position) {}
    virtual ~A() = default;

    int position;
};

struct B : public A
{
    using A::A;
};

struct C : public B
{
    using B::B;
};

struct D : public B
{
    using B::B;
};

Demo

关于c++ - 无需重复代码的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43341371/

相关文章:

c++ - C++ 中的一个定义规则到底是什么?

php - 如何在引用两列时为 td 添加一个类

visual-studio - 在 Visual Studio 2010 中打开 "Class Explorer"

java - 为什么需要模板/泛型?传承还不够吗?

c++ - 最大的数字。给定一个非负整数列表,将它们排列成最大的数

c++ - 使用 Qt 从 mysql 查询构建二维 vector

c#接口(interface),抽象类,强制继承类不是抽象类

c++ - 类型删除的 std::function 与虚函数调用的开销

c++ - 查找与一组规则匹配的所有排列

java - 继承不允许我创建子类的对象?