我创建了一个接受另一个对象作为引用的类。问题是...我想访问传递对象内部对象的一些属性。我真的只需要两个对象之间的双向通信,但我不确定如何最好地完成这项工作。
class A {
private:
void someMethod();
public:
A();
};
class B {
protected:
char someAttribute;
A& a;
public:
B(A& a);
};
someMethod() {
char newAttribute = someAttribute;
}
我希望 someMethod 能够访问 someAttribute,但我不确定这是否是解决问题的正确方法。我在主函数中将对象传递给了另一个对象。如果我直接在另一个类中实例化该类,我不确定会发生多少变化。
我还尝试过将 A 设为子类,但这并没有起作用,而且我认为这会创建两个独立的父类实例,这对我来说没有任何意义。
然后我尝试使用 friend。
class A {
private:
void someMethod();
public:
A();
};
class B {
protected:
char someAttribute;
friend class A;
A& a;
public:
B(A& a);
};
someMethod() {
char newAttribute = someAttribute;
}
我不确定正确的方法,但上面的代码无效。
如果有人有更好的实现这段代码的方法,我愿意倾听。
someMethod()
? - Thomas Sablik