/*使用前向引用声明虽然可以解决一些问题,但它并不是万能的。需要注意的是,尽管使用了前向引用声明,但是在提供一个完整的类声明之前,不能声明该类的对象,也不能在内联成员函数中使用该类的对象。请看下面的程序段:*///第一种#include<iostream>class Fred; //前向引用声明class Barney {Fred x; //错误:类Fred的声明尚不完善};class Fred {Barney y;};//第二种class Fred; //前向引用声明class Barney {public:void method(){x->yabbaDabbaDo(); //错误:Fred类的对象在定义之前被使用}private:Fred* x; //正确,经过前向引用声明,可以声明Fred类的对象指针};class Fred {public:void yabbaDabbaDo();private:Barney* y;};/*总结:当使用前向引用声明时,只能使用被声明的符号,而不能涉及类的任何细节。*/
