两个类相互包含对方成员的问题

问题:

类一:  
  class   A  
  {  
  private:  
            int   aa;  
              B   *pb;  
  public:  
              void   seta(int   m){   aa=m};  
            int   geta(){return   aa};  
             
            void   setB(B   *b){pb=b};  
            int   getbfromA{return   pb->getb};  
  }  
  类二:  
  class   B  
  {  
  private:  
            int   bb;  
              A   *pa;  
  public:  
              void   setb(int   m){   bb=m};  
            int   getb(){return   bb};  
             
            void   setA(A   *a){pa=a};  
            int   getafromB{return   pa->geta};  
  }  
  问:一。上面两个类要是在不同的文件中(假设分别在a.h,b.h中)应该如何包含头文件或者提前声明,才能编译通过?  
  二。在相同的文件中,又要如何呢?  
  三。如果把上面两个类中的A   *pa;B   *pb;改为A   pa;B   pb;又要如何解决!??  

 

解答:

一。

 类一:  
  class   B;  
  class   A  
  {  
  private:  
            int   aa;  
              B   *pb;  
  public:  
              void   seta(int   m){   aa=m};  
            int   geta(){return   aa};  
             
            void   setB(B   *b){pb=b};  
            int   getbfromA{return   pb->getb};  
  }  
  类二:  
  class   A;  
  class   B  
  {  
  private:  
            int   bb;  
              A   *pa;  
  public:  
              void   setb(int   m){   bb=m};  
            int   getb(){return   bb};  
             
            void   setA(A   *a){pa=a};  
            int   getafromB{return   pa->geta};  
  }

 

二。
  class   B;  
  class   A  
  {...}  
  class   B  
  {...}   

三。
  还是用指针吧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值