我有这段代码
#include <iostream>
class A;
using namespace std;
class C {
A::B fun(){
}
};
class A{
public:
enum B {b1};
};
int main()
{
}
此代码给我一个错误main.cpp:8:5: error: ‘B’ in ‘class A’ does not name a type
。
有人知道如何在不将A::B
移至顶部的情况下返回A
吗?
答案 0 :(得分:1)
问有没有人知道如何在不将A移到顶部的情况下返回A :: B?
A 这是不可能的。
A
的前瞻声明并未提供A
内部内容的任何详细信息。因此,A::B
中的class C
不是已知类型。
要在A::B
中使用class C
,您必须在class A
的定义开始之前添加class C
的完整定义。