现在的位置: 首页 > 综合 > 正文

关于c++头文件的重复包含

2017年12月22日 ⁄ 综合 ⁄ 共 343字 ⁄ 字号 评论关闭

哭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){
}

抱歉!评论已关闭.