2010-10-03 115 views
1

例如,我有一个结构,我正在使用类的静态函数来初始化其成员。我怎么能告诉编译器该类存在,但它是在结构S之后定义的?声明一个类/结构

struct S 
{ 
    S() 
    { 
     x = C::GetX(); //static functions, GetX() and GetY() 
     y = C::GetY(); 
    } 

int x; int y; 
}; 

class C 
{ 
/..../
} 

编辑:我也会如果您使用在S定义C类的成员函数中class C

回答

2

先放C

没有更多的上下文,很难更深入地回答。

struct S; 

class C 
{ 
/..../
}; 

struct S 
{ 
    S() 
    { 
     x = C::GetX(); //static functions, GetX() and GetY() 
     y = C::GetY(); 
    } 

int x; int y; 
}; 

或者,您可能需要定义S::Sclass S块之外。

struct S 
{ 
    S(); 

int x; int y; 
}; 

class C 
{ 
/..../
}; 

S::S() 
{ 
    x = C::GetX(); //static functions, GetX() and GetY() 
    y = C::GetY(); 
} 
0

使用struct S,你需要S之前声明C