繁体   English   中英

使用指针访问朋友类成员函数

[英]Using pointers to access friend class member functions

这是两节课

  class A{
    A(int val):Val(val){}
    int getVal(){return Val;}
    friend class B;
    private:
    int Val;
  }


 class B{
    B(A* ptr):PTR(ptr){}
    private:
    A* PTR;
  }

在主函数中,我为两个类创建对象

 A objA;
 B objB(&objA)

如您所见,objB现在包含一个指向objA地址的指针。 我面临的问题是如何使用objB中的指针访问objA中的成员函数。

如果要使A类型的对象指向B类型的对象,反之亦然,则可以使用setter而不是像这样通过构造函数参数传递实例:

  class A{
        A(int val):Val(val){}
        int getVal(){return Val;)
        void setB(B* ptr) {BPtr= ptr;}
        friend class B;
        private:
        int Val;
        B* BPtr
  }


 class B{
        B(A* ptr):PTR(ptr){}
        private:
        A* PTR;
  }

现在,当您创建A和B对象时,您可以执行以下操作:

 A objA;
 B objB(&objA);
 A.setB(&objB);

编辑:

好吧,我一开始误解了你的问题。 如果您只是想访问类型A的对象的成员,则只需执行objA->field(*objA).field

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM