【发布时间】:2018-08-09 12:31:03
【问题描述】:
我正在尝试对结构进行前向声明。但它不起作用。
typedef struct BEAST_Coord2D BEAST_Coord2D;
typedef struct BEAST_Vertex BEAST_Vertex;
struct BEAST_Vertex {
BEAST_Coord2D absolut;
BEAST_Coord2D relativ;
};
struct BEAST_Coord2D {
float x;
float y;
};
Visual Studio 2017 说: “错误 C2079:'BEAST_Vertex::absolut' 使用未定义的结构 'BEAST_Coord2D' 错误 C2079:'BEAST_Vertex::relativ' 使用未定义的结构 'BEAST_Coord2D'
我为我的所有结构制作了一个简单的头文件。 这里有什么问题?
最好的 星牛
【问题讨论】:
-
您可能想阅读一本 C++ 书籍。您正在尝试在这里编程 C,而不是 C++。在 C++ 中,
struct X和X已经命名相同的类型,但没有typedef。 -
在
struct BEAST_Vertex之前定义struct BEAST_Coord2D它将起作用,因为您声明了它们但没有定义它们 -
@TCouch:不是重复的。链接的问题取决于成员的使用,但 typedef 不需要成员。
-
@Slava Yes it does
标签: c++ struct forward-declaration