我尝试了以下操作,但是编译失败了。
class A {
//...members
class B : public A { //<---failed here
using A::A;
}
}这有可能(特别是在c++17中)吗?这只是语法错误吗?如果不可能,为什么这不起作用?
发布于 2020-08-28 03:41:08
这是可以做到的,但是B的定义需要移出A之外。在结束大括号之前,A是一个不完整的类型,而基类必须是完整的。
这样做是可行的:
class A {
class B;
};
class A::B : public A {
using A::A;
};https://stackoverflow.com/questions/63627049
复制相似问题