我在c ++中有这个结构:
struct Vertex_2 {
GLdouble position[3];
};
我试图像这样访问其中的数组:
Vertex_2.position[0] = //something;
Vertex_2.position[1] = //something;
....
...
..
当我编译它时,我得到了这个:
error: expected unqualified-id before ‘.’ token
为什么会这样?
答案 0 :(得分:2)
在使用其成员之前,您必须创建struct
的实例。
Vertex_2 v; // v is an *instance* of the *struct* Vertex_2
v.position[0] = //something;
v.position[1] = //something;
...
将Vertex_2
视为所有Vertex_2
应该是什么样的描述(但它本身不是Vertex_2
)。然后,您必须通过执行Vertex_2
来实际创建Vertex_2 name;
。在示例中,我们使用名称v
而不是name
,但您可以根据需要为实例命名。然后,您可以通过带有点(.
)的名称访问该实例的成员变量,就像您之前尝试过的那样。
答案 1 :(得分:1)
您需要定义类的变量,您只需定义一个类型。
struct Vertex_2 {
GLdouble position[3];
} varVertex_2; // <-- now you have an instance of the struct
varVertex_2.position[0] = //something;
varVertex_2.position[1] = //something;
答案 2 :(得分:0)
因为您尝试访问struct类型而不是实际的struct。尝试:
struct Vertex_2 {
GLdouble position[3];
} myVertex;
myVertex.position[0] = //something;
myVertex.position[1] = //something;