首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++结构-错误1错误C2143:语法错误:缺失';‘在'*’之前

C++结构-错误1错误C2143:语法错误:缺失';‘在'*’之前
EN

Stack Overflow用户
提问于 2013-10-09 08:27:53
回答 5查看 3.3K关注 0票数 1

当我试图编译以下内容时,我会收到错误"Error 1 error C2143:语法错误:缺失';‘前面'*'“。有人知道我为什么会收到这个错误吗?我在这里做错什么了?

代码语言:javascript
复制
struct HE_edge {
HE_vert* vert; // vertex at the end of the half-edge<br>
HE_edge* pair; // oppositely oriented half-edge<br>
HE_face* face; // the incident face<br>
HE_edge* prev; // previous half-edge around the face<br>
HE_edge* next; // next half-edge around the face<br>
};

struct HE_vert {
float x, y, z; // the vertex coordinates<br>
HE_edge* edge; // one of the half-edges emanating from the vertex<br>
};

struct HE_face {
HE_edge* edge; // one of the half-edges bordering the face<br>
};
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-10-09 08:33:30

尝试按照正确的顺序声明您的结构:因为HE_edge依赖于HE_vert和HE_face,所以在前面声明它们。

代码语言:javascript
复制
struct HE_vert;
struct HE_face;

struct HE_edge {
HE_vert* vert; // vertex at the end of the half-edge<br>
HE_edge* pair; // oppositely oriented half-edge<br>
HE_face* face; // the incident face<br>
HE_edge* prev; // previous half-edge around the face<br>
HE_edge* next; // next half-edge around the face<br>
};

struct HE_vert {
float x, y, z; // the vertex coordinates<br>
HE_edge* edge; // one of the half-edges emanating from the vertex<br>
};

struct HE_face {
HE_edge* edge; // one of the half-edges bordering the face<br>
};
票数 4
EN

Stack Overflow用户

发布于 2013-10-09 08:30:09

在使用HE_vertHE_face之前,您需要转发声明它们。

代码语言:javascript
复制
// fwd declarations. Can use "struct" or "class" interchangeably.
struct HE_vert;
struct HE_face;

struct HE_edge { /* as before */ };

请参阅When to use forward declaration?

票数 2
EN

Stack Overflow用户

发布于 2013-10-09 08:30:24

在使用类类型创建指针之前,需要声明所有类:

代码语言:javascript
复制
struct HE_edge;
struct HE_vert;
struct HE_face;

// your code
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19266713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档