我尝试了以下操作,但无法编译。
class A {
//...members
class B : public A { //<---failed here
using A::A;
}
}
这可能吗(特别是在c ++ 17中)?这只是语法错误吗?如果不可能,为什么这不起作用?
可以这样做,但是B
需要的定义需要移到之外A
。直到右括号为止,它A
是一个不完整的类型,而基类必须是完整的。
这将工作:
class A {
class B;
};
class A::B : public A {
using A::A;
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句