gpt4 book ai didi

c++ - 在 C++ 中初始化引用和变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:33 26 4
gpt4 key购买 nike

给定以下 C++ 函数:

int& ReturnAReference() {
/* Do something here */
}

这两种说法有什么区别吗:

int normalVariable = ReturnAReference();
int& referenceVariable = ReturnAReferene();

一个版本比另一个更受欢迎吗?

最佳答案

关于这个:

int normalVariable = ReturnAReference();

normalVariable 是一个整数,并被赋予 ReturnAReference() 引用的 int 值。因此,对 normalVariable 进行递增、分配或执行任何其他操作都不会影响 ReturnAReference() 内部的任何内容。

关于这个:

int& referenceVariable = ReturnAReference();

referenceVariable 是对整数的引用,否则该整数将在 ReturnAReference() 内部。因此,对 referenceVariable 进行递增、分配或执行任何其他操作影响 ReturnAReference() 内部的任何内容。

首选方法取决于您要实现的目标,但在许多情况下,第二种方法(使用 referenceVariable)违反了“封装”( http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming) ),这被认为是糟糕的设计。

编辑:我应该补充一点,如果 ReturnAReference() 正在返回对该函数中局部变量的引用,则该引用将在 ReturnAReference() 返回后立即无效。

关于c++ - 在 C++ 中初始化引用和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18305742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com