我想了解为什么可以在 C++ 中返回对类成员变量的引用,例如在以下示例中:
class Foo
{
int x;
public:
int& get_pvar()
{
return x;
}};
显然我们可以在 main() 中访问变量 x,创建一个对它的引用,然后改变它的内容:
Foo obj;
int& ref = obj.get_pvar();
ref = 7;
但这怎么可能?x 没有全局范围,也不是该类的静态成员。它在类中定义。因此,它应该具有本地范围。那么,为什么返回对它的引用甚至在 main() 中创建对它的引用都不是错误的呢?