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


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值