嵌套类中的结构体调用有关问题

嵌套类中的结构体调用问题
有一个类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;

------解决方案--------------------
引用:
    enum faceOrien
    {
        xNeg = 0,
        xPos = 1
    };
这个貌似是定义类型啊,不是变量。定义变量改成
    enum
    {
        xNeg = 0,
        xPos = 1
    }faceOrien;

++
这样定义的是匿名的枚举类型

或者:
struct connectedGrids
{
    int Coord[3];
    enum faceOrien_type   //这是定义枚举的类型
    {