class A{
A(B& ref) : b(ref){}
B getB(){return this->b;}
B b;
};
getB() 是否返回对 Ab 的引用或构造函数给出的相同引用?如果原始 B 已在 A 之外更改但 A.getB() 仍返回旧 B,这将是一个问题。如果这会既然如此,有没有办法避免这种情况?
不,只有 的副本ref
存储在b
的相应实例的成员中A
,而 this 的副本是由 . 返回的getB
。
要返回该实例的初始化实例(B
不是您想要做的,而是ffr),您可以这样做:A
class A{
A(B& ref) : b(ref){}
B& getB(){return this->b;}
B& b;
};
您的吸气剂不返回参考。要返回参考,您必须编写
B &getB(){return this->b;}
此外 b 也被存储为一个值而不是引用。因此,如果您想返回相同的引用,它应该如下所示:
class A {
B &b;
public:
A(B &ref) : b(ref){}
B &getB(){return this->b;}
};