我想让一个类继承自它的封闭类,如下所示:
class A : public A::B {
public:
class B {};
};
但是,编译器complains A::B
未定义:
error: expected class-name before '{' token
class A : public A::B {
也就是说,在 A
的定义完成之前,A::B
将无法使用。
我已经尝试在上面加上
class A;
class A::B;
但这并没有帮助。如何正确声明和定义它?
注意:本质上,我正在尝试做与 this question 相反的事情.
最佳答案
在指定继承的地方,内部类还不知道。因此你不能那样做。但是如果重点是限制范围,那么只需使用命名空间,例如称之为detail
或implementation
。
关于C++:如何从封闭类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28401541/