构造函数只能直接从基类继承?
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.
我有一个基础 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.