这是两个班级
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;
}
在main函数中,我为两个类创建对象
A objA;
B objB(&objA)
如您所见,objB现在包含一个指向objA地址的指针。我面临的问题是如何使用objB中的指针访问objA中的成员函数。
答案 0 :(得分:0)
如果您希望在类型B的对象上创建A类型的对象,反之亦然,您可以使用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
。