java转c++了,说不清的痛苦,然后写代码遇到一个问题,特来总结一下。
比如有两个类,A和B,A要引用B,B也要引用A。但是如果同时在头文件里面包含对方,就会发生编译错误。
比如写成
//A.h #include"B.h" class A{ B b; };
//b.h #include"A.h" class B{ A a; };
解决方案,只需要在一个头文件中声明即可。
//A.h class B; //注意在这里声明 class A{ void fun(B b); };
//A.cpp #include"B.h" //注意在这里引用 #include"A.h" void A::fun(B b){ }
//B.h #include"A.h" class B{ void ok(A a); };
//B.cpp #include"B.h" void B::ok(A a){ }