我有4个类(class),可以说:A级,B级,C级和D级。

  • B类继承自A类。
  • C类和D类继承自B类。
  • 类A和B是抽象类。

  • 我想在A类中声明一个字段,说int posision,并通过向该字段分配参数(int parameterValue)的值在C类和D类的构造函数中定义此字段。

    有没有解决方案,而无需在后代类的所有构造函数中重复position = parameterValue行?

    最佳答案

    将其放在类B中,并在后代类的开头调用 super 构造函数。像这样:

    class A {
        protected:
            int position;
    };
    class B: public A {
        public:
            B(int parameterValue) : A() {
                position = parameterValue;
            }
    };
    class C: public B {
        public:
            C(int parameterValue) : B(parameterValue) {
            }
    };
    

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

    10-09 05:58