嵌套类中的结构体调用有关问题
嵌套类中的结构体调用问题
有一个类Grid,其中一个成员变量是一个Face类,这两个类的定义分别写在了Grid.h和Face.h文件中,而Face.h文件中,在Face类的定义之前我写了一个结构体变量connectedGrids。
现在我想在Face类的定义中声明一个connectedGrids类型的vector,然后在主程序中新建一个Grid类型的对象,并实现下面方式的调用,但是下面的代码编译时出错,正确的方式应该如何实现?
------解决方案--------------------
enum faceOrien
{
xNeg = 0,
xPos = 1
};
这个貌似是定义类型啊,不是变量。定义变量改成
enum
{
xNeg = 0,
xPos = 1
}faceOrien;
------解决方案--------------------
++
这样定义的是匿名的枚举类型
或者:
有一个类Grid,其中一个成员变量是一个Face类,这两个类的定义分别写在了Grid.h和Face.h文件中,而Face.h文件中,在Face类的定义之前我写了一个结构体变量connectedGrids。
现在我想在Face类的定义中声明一个connectedGrids类型的vector,然后在主程序中新建一个Grid类型的对象,并实现下面方式的调用,但是下面的代码编译时出错,正确的方式应该如何实现?
Grid.Face.ConnectedGrids.faceOrien = 1; //这里提示ConnectedGrids不是face的成员
//Face.h
struct connectedGrids
{
int Coord[3];
enum faceOrien
{
xNeg = 0,
xPos = 1
};
};
class face
{
public:
vector<connectedGrids> ConnectedGrids; //编译时该行提示语法错误 : 缺少“;”(在“<”的前面)
face();
~ face();
};
//Grid.h
class grid
{
public:
face Face;
grid();
~grid();
}
------解决方案--------------------
enum faceOrien
{
xNeg = 0,
xPos = 1
};
这个貌似是定义类型啊,不是变量。定义变量改成
enum
{
xNeg = 0,
xPos = 1
}faceOrien;
------解决方案--------------------
++
这样定义的是匿名的枚举类型
或者:
struct connectedGrids
{
int Coord[3];
enum faceOrien_type //这是定义枚举的类型
{