我遇到了以下问题:有一个抽象基类,还有两个实际上从基类继承的抽象类,并且作为结论必须使用所有需要的参数调用它的构造函数。
但是现在,我得到了一个继承两个二阶类的“普通”类,因此必须自己调用baseclass-constructor(因为基类几乎从二阶类继承),但是两个二阶构造函数都将参数传递给基类构造函数。
是否有可能以一种不需要传递构造函数的方式实现构造函数,在这种情况下是未使用的参数?
我希望我能够准确地描述我的问题,如果有任何问题我会乐意回答。
答案 0 :(得分:1)
最终找到了它。
§12.6.2/ 7 [class.base.init]
使用mem-initializer中的expression-list或braced-init-list 初始化指定的子对象(或者,如果是 委托构造函数,完成类对象) 用于直接初始化的8.5的初始化规则。该 每个mem-initializer执行的初始化构成一个 充分表达。 mem-initializer中的任何表达式都被评估为 执行初始化的全表达式的一部分。 :一种 mem-initializer,其中mem-initializer-id表示虚拟基础 在执行任何类的构造函数时,将忽略class 不是派生最多的课程。
所以,传递参数。无论如何他们都会被忽视。让事情变得非常简单!