声明一个类/结构

时间:2010-10-03 18:22:27

标签: c++

例如,我有一个结构,我正在使用类的静态函数来初始化其成员。我如何告诉编译器该类存在但是它是在结构S?

之后定义的
struct S
{
    S()
    {
        x = C::GetX(); //static functions, GetX() and GetY()
        y = C::GetY();
    }

int x; int y;
};

class C
{
 /.... /
}

修改:我还会在struct S中使用class C

2 个答案:

答案 0 :(得分: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::S块之外定义class S

struct S
{
    S();

int x; int y;
};

class C
{
 /.... /
};

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

答案 1 :(得分:0)

如果您在C的定义中使用了类S的成员函数,则需要在 {{1}之前声明C }。