c++ - 返回对变量 : Meaningful/useful? 的引用

标签 c++ function reference return-value assignment-operator

假设您有以下代码:

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。 objsomeObject

的拷贝

版本 2。初始化对 MyObject 的引用,(也)称为 obj,以便它命名与 someObject 相同的对象。

如果你改变 obj,版本 1 不会改变 someObject,版本 2 会。

关于c++ - 返回对变量 : Meaningful/useful? 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42791844/

相关文章:

按值调用还是按引用调用?

javascript - JavaScript 中的 "reference"?

C++数组默认参数,同时使函数重载

javascript - "Unexpected end of input"- 代码学院剪刀石头布

c++ - 如何返回结构数组

data-structures - 使用 Box<T> 和 &'a T 实现的链表之间有区别吗?

c++ - 改变输出的变量

c++ - 带有多个括号的宏

c++ - 在使用模板模板参数时出现荒谬的错误

mysql:时间值的数据截断错误:函数