例如,我有一个A.h标头文件,并且其中有一个类声明,例如:
class A {
public:
struct Node {
int val;
};
private:
B* b;
};
它包含B.h文件中定义的类B的指针:
class B {
public:
A::Node* node_new() { ***};
};
编译项目时,出现“嵌套名称说明符”错误。怎么解决呢?
最佳答案
是的,A.h包含#include“ B.h”,而B.h包含#include“ A.h”
因此,这里是无限递归...您应该在B
文件中使用类A.h
的前向声明,并在A.h
中包含B.h
,因此,这应该可以正常工作。
关于c++ - 如何解析嵌套名称说明符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15697723/