为什么Xcode说" Vertex.h"不承认?
//Vertex.h
#include "Edge.h"
struct Vertex
{
vector<Edge> adjList;
string myData;
};
在单独的文件中,
//Edge.h
#include "Vertex.h"
struct Edge
{
Vertex* destination; // "Unknown type named 'Vertex.h'
double weight;
}
这里有错吗?请帮忙。谢谢!
答案 0 :(得分:3)
您有循环依赖:Vertex.h
取决于Edge.h
,这取决于Vertex.h
...
在您的具体情况下,它很容易解决,因为Edge.h
并不需要Vertex
的完整定义,只知道Vertex
结构存在,所以改变就像
//Edge.h
struct Vertex;
struct Edge
{
Vertex* destination; // "Unknown type named 'Vertex.h'
double weight;
};
更改是您不包含Vertex.h
,而是声明Vertex
结构。这告诉编译器存在名为Vertex
的结构,因此它可以用于例如{{1}}。指针或参考。