在有时候因为类太大,需要在类在后面定义;
例如:
class Y{
void f(X);
};
class X{
//一些成员数据和函数
};//error因为c++要求任何一个变量在引用之前必须声明。,在上述定义中我们可以调换两者的顺序来实现。
但是如果形成了循环?
class X{
void f1(Y)
};
class Y{
void f(X);
}; //error
那么我们可以通过在上述中先声明?
class Y;
class X{
void f1(Y) //error
};
class Y{
void f(X);
}; 所以我们通过将函数f1()中的参数Y改为
class Y;
class X{
void f1(Y*)
};
class Y{
void f(X);
}; //right
但是这里函数f2()就可以使用类X作为参数 ,因为类X已经被完整的定义了。
原文地址:http://blog.csdn.net/zhouyelihua/article/details/32345125