构造函数只能直接从基类继承?

Constructors can only be inherited DIRECTLY from the base?

我有一个基础 class A,它定义了一些构造函数。

然后我有 class继承自 A 的 B1、B2、B3。

其中

None 是要实例化的。相反,我有 classes C11、C12、C13 继承自 B1,等等。

C11、C12等都需要A的构造函数

我不认为我可以在 class C11 中写 using A::A;,例如,对吗?

获得这些构造函数的唯一方法(除了剪切和粘贴它们)是 B1 说 using A::A; 和 C11 说 using B1::B1;?

请注意,我的问题不是关于特定编译器支持什么,而是规范允许什么,因此“只是测试它”并不是这个特定问题的真正答案。

如果您正在寻找来自标准的报价,那么这里是:

[namespace.udecl]/3 ... If a using-declarator names a constructor, its nested-name-specifier shall name a direct base class of the class being defined.