结构访问中的C ++数组

时间:2011-11-03 00:49:05

标签: c++

我在c ++中有这个结构:

struct Vertex_2 {
    GLdouble position[3];
};

我试图像这样访问其中的数组:

Vertex_2.position[0] = //something;
Vertex_2.position[1] = //something;
....
...
..

当我编译它时,我得到了这个:

error: expected unqualified-id before ‘.’ token

为什么会这样?

3 个答案:

答案 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;