随笔记录。
偶尔有时候,在cpp编程中,可能需要在类A中使用类B,再在类B中使用类A。直接引用不可行,会引起编译错误,具体什么错误笔者忘记。
简述解决方法,首先,如果想交叉引用,类A与类B的相互引用只能用指针,不可以直接声明实体。其次,类A与类B的成员函数不能在hpp文件中实现,必须在cpp中实现。
然后,可以在A.hpp文件声明类A之前,通过class B;方式预声明类B,并在类A中创建类B的指针,B.hpp同样如此。
之后,在A.cpp文件中同时引用A.hpp与B.hpp,实现类A的成员函数,此时,就可以在类A中操作类B;同样的方法,在B.cpp中可以操作类A,从而实现类A与类B的交叉引用。