Xcode没有连接两个结构?

时间:2014-12-18 14:36:30

标签: c++ xcode struct

为什么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;
}

这里有错吗?请帮忙。谢谢!

1 个答案:

答案 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}}。指针或参考。