您好我在理解C ++中的friend关键字时遇到了一些麻烦
假设我有一个如下所示的课程:
class A
{
private:
friend class B;
struct Astruct
{
int funVar = 1;
};
Astruct myStruct
public:
changeAStruct(); // changes the value of funVar to 2
};
class B
{
//how do i here get access to myStruct with the value 2?
};
希望上面的伪代码能告诉你我的问题。我想要myStruct的同一个实例,使用this指针可以让我在B类的A类中实现。我怎样才能实现这个目标?
我不想要的是在B类中输入:
A::Astruct myStruct
因为这会在B类中创建一个新结构,并将funVar设置为1.我想在A类中使用相同的结构,但现在在B类中...
编辑:我想从main我可以将myStruct发送到B类作为参考并从那里访问它。这是最佳选择吗?
答案 0 :(得分:0)
我不确定你想要什么,但你可以这样做:
class A
{
private:
friend class B;
struct Astruct
{
int funVar = 1;
};
Astruct myStruct;
};
class B
{
public:
int getFunVar(A &a)
{
return a.myStruct.funVar;
}
};