c++中两个类互相持有对方引用的方法

在java中,有时为了对象之间的通信,会让两个类互相持有对方引用

在刚学习c++的面向对象时,为了沿用这一思路,我定义了如下两个文件。

class A{
    B *b;
};

class B{
    A *a;
};

然而,这段代码是错的。

因为在A中引用了B这个类,而此时还没有定义B。这是因为C++不同于java的全文检索,它是顺序的

所以要解决这个问题要怎么办呢?

c++有函数原型来解决函数中的这种先后调用问题,同样,类也可以用原型的方式来解决这种问题。

class B;
class A{
    B *b;
};

class B{
    A *a;
};

这样错误就消失了。

但是,如果A和B没有定义在同一个头文件中,这种方法有可能会有警告,而且A中无法访问B的信息。

此时,只要在A.cpp中不仅include "a.h",连带着b.h一起include,问题就解决了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值