在 A.h 中
#pragma once
include "B.h"
class A {
B* aPtrToB;
}
在 B.h
#pragma once
include "A.h"
class B{
A* aPtrToA;
}
Visual C++ 显示“错误 C2065:‘A’:未声明的标识符”
有什么想法吗?
谢谢!
最佳答案
你有一个循环包含。 #pragma once
阻止了由此产生的无限包含,但这意味着 A
中的任何一个都没有 B
的定义在它上面或 B
上面不会有 A
的定义,这取决于哪个先被编译。
解决方案是不#include
头文件,因为您只需要前向声明来声明指针:
#pragma once
class B;
class A {
B* aPtrToB;
};
和:
#pragma once
class A;
class B {
A* aPtrToA;
};
关于c++ - visual c++ 未声明的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16678172/