c++:独立引用是用来做什么的
C++: what are free-standing references used for?
在哪种情况下,您想要定义对某些内存块的引用?
例如:const int & r = 8;
而不是简单地写:
int r = 8;
用较短的引用替换对象的长表达式很有用,这样可以使代码更具可读性。例如:
const int &SphereRadius = Configuration::getInstance()->sphere->radius;
当配置同时改变时(例如在另一个线程中),你的引用被更新。
您所展示的代码只是一个更大的工具的简单可能性。你的例子在很多情况下是没有意义的,因为你之前理解它。这类引用的主要目的是混叠一个对象。
通过对函数的引用传递对象,并且能够修改引用对象而不会引起指针的混淆。
在基于范围的循环中使用它们来修改容器中的迭代项
在某些情况下用更简单的表达式缩短表达式。及更多... .
不能将非const引用绑定到右值,即不能"引用"不能出现在赋值操作符左侧的东西(如临时对象)。主要原因是,当临时变量被销毁时,最终会得到一个悬空引用,而c++不允许这样做。你的代码无法编译。
有趣的是,你可以将temp绑定到const引用,这将延长temp的生命周期,即
const Foo& ref = Foo(); // creates a temporary Foo, destructor is not invoked now
但是临时文件没有被销毁。参见const引用是否会延长临时对象的寿命?然而,我不会在我的代码中使用它,它只是我们大多数人困惑的来源。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 警告处理为错误这里有什么问题
- 什么时候调用组成单元对象的析构函数
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 什么时候在C++中返回常量引用是个好主意
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- C++避免重复声明的语法是什么
- c++库的公共头文件中应该包含什么
- 在C++中将内部类实现为具有名称空间的独立类有什么好处
- 在没有额外代码的情况下链接两个独立类的最通用方法是什么?
- 在Visual Studio中编写独立程序的最佳方法是什么?
- 有什么理由更喜欢从 IDE 中运行应用程序而不是运行独立的可执行文件?
- 什么是独立功能
- 获得快速的k对独立散列函数的选项是什么
- 在C++中对这些独立但相关的序列进行排序的干净方法是什么?
- 在c++中获得当前实例(例如pid)唯一值的独立于平台的方法是什么?
- c++:独立引用是用来做什么的
- c++中的独立冒号是什么?