C++:如何从封闭类继承

标签 c++

我想让一个类继承自它的封闭类,如下所示:

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 相反的事情.

最佳答案

在指定继承的地方,内部类还不知道。因此你不能那样做。但是如果重点是限制范围,那么只需使用命名空间,例如称之为detailimplementation

关于C++:如何从封闭类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28401541/

相关文章:

c++ - 如何在没有互斥体的情况下锁定文件流

c++ - pthread_spinlock 和 boost::smart_ptr::spinlock 之间的区别?

c++ - OpenCV cv::dnn::Net::getBlob 返回 dnn::Blob::matRefConst 有 rows == -1 和 cols == -1

C++ 函数模板错误

c++ - Qt中如何在窗体之间传递数据序列

c++ - 带有多行文本的 QInputDialog

c++ - 为什么 boost::barrier wait 不是中断点?

c++ - 这是 lcov 的错误还是对一个函数中的不同命中计数有意义?

c++ - 在 C++ 中使用 matio 时 Mat_Open 不工作

c++ - 为什么我们必须在箭头符号( -> )之后再次指定数据类型