类向前声明小问题
两个类,类中相互要用到对方的指针,就把其中一个类向前声明了但是编译报错了,想请问下是错在哪?谢谢。
程序代码:
#include <iostream> using namespace std; class Visitor;//,,,,,,, //被访问者 class Library{ private : int x,y; public : Library(){ x=0; y=0; } void Accept(Visitor *v){ v->visit(this); } void Do(){ cout<<"x="<<x<<endl; cout<<"y="<<y<<endl; } ~Library(){ cout<<"Library xigou"<<endl; } }; //访问者 class Visitor{ public : Visitor(){ cout<<"efas"<<endl; } void visit(Library *l){ l->Do(); } }; int main() { Visitor *pv=new Visitor(); Library *pl=new Library(); pl->Accept(pv); delete pl; delete pv; }
加上错误信息。
[此贴子已经被作者于2018-5-16 00:31编辑过]