例如,我有一个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/

10-08 22:49