【问题标题】:How many constructors need to be specified for derived class?派生类需要指定多少个构造函数?
【发布时间】:2018-03-11 17:12:01
【问题描述】:

我尝试学习面向对象编程并且有一个基本问题。 有一个基类 A,它具有三个构造函数,分别采用 0、1 和 2 个变量。 我想从 A 中派生一个 B 类,我想在其中选择最多传递三个变量。 所以我需要至少三个不同的 B 构造函数,每个可选变量一个。 但是对于基类 A 的每个构造函数,我是否还需要三个不同的 B 构造函数,即总共 9 个构造函数?

【问题讨论】:

  • 你为什么要?那么这些构造函数会是什么样子呢?
  • 这完全取决于您要实现的目标,因此如果没有任何代码,您无法真正给出直接的答案,但需要 9 个构造函数几乎肯定是设计缺陷。

标签: c++ class inheritance constructor


【解决方案1】:

由于构造函数不会自动继承,这取决于您。 但是,您可以执行以下操作:

class A {
    int a;
    int b;
    int c;

public:
    A(int newA = 0, int newB = 0, int newC = 0): a(newA), b(newB), c(newC){}
};
class B : public A{
    using A::A;
};

这还包括可选参数和构造函数初始值设定项列表,这应该是不言自明的。 希望这能回答您的问题。

干杯

【讨论】:

    猜你喜欢
    • 2017-12-18
    • 2020-04-23
    • 2023-03-22
    • 2014-02-17
    • 1970-01-01
    • 2016-07-19
    • 2018-07-21
    • 2011-02-24
    • 2020-02-28
    相关资源
    最近更新 更多