假设您有以下代码:
MyObject someObject;
MyObject& getReferenceToObject() {
return someObject;
}
现在考虑以下调用 getReferenceToObject()
的方法:
void MyFunction() {
MyObject obj = getReferenceToObject(); // 1.
MyObject& obj = getReferenceToObject(); // 2.
}
编译器允许 1. 和 2. 我的问题是,如果我像 1. 那样做,对象会被复制到 obj
变量中,还是 obj
指向 someObject
? 2. 有任何意义吗?
最佳答案
版本 1. 使用 MyObject::MyObject(const MyObject & other);
构造函数(或类似的)初始化一个名为 obj
的 MyObject。 obj
是 someObject
版本 2。初始化对 MyObject 的引用,(也)称为 obj,以便它命名与 someObject
相同的对象。
如果你改变 obj
,版本 1 不会改变 someObject
,版本 2 会。
关于c++ - 返回对变量 : Meaningful/useful? 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42791844/