gpt4 book ai didi

c++ - 什么时候可以安全方便地使用引用变量作为别名?

转载 作者:搜寻专家 更新时间:2023-10-31 02:20:12 26 4
gpt4 key购买 nike

我读过一些 answers in SOtutorials in other places通常给出以下想法:

Reference variables can be used as a second name or an alias for another variable

这是否确实如此,或者是否存在无法或不方便这样做的情况?它何时可行以及如何实现?


我的问题的动机:

我在一个类的变量中遵循了这个概念,但每当 objects of those classes were copied 时都会遇到问题。 (复制对象中的引用将引用原始变量)。到目前为止我看到的解决方案涉及指定一个自定义复制构造函数来更改这些别名的默认初始化,自 you can't extend the default constructor 以来这可能需要大量工作。更改这些特定变量,然后您需要为整个类编写一个或为包装别名的嵌套变量编写一个(因此也限制了您可以使用的名称)。

最重要的是,据我所知,使用引用成员变量作为别名要么是不安全的(如果你的变量被复制,它就不会像预期的那样工作)要么不容易(你可能不得不编写和维护很多代码)。

话虽如此,我的问题可以拆分如下:

  1. 是否可以将成员引用变量用作别名而避免前面提到的所有麻烦?
  2. 还有其他可能不安全的情况吗? (复制操作除外)
  3. 当您没有成员引用变量时,您是否确实可以安全地将它们用作第二个名称,或者是否存在需要格外小心的情况?

最佳答案

引用在以下情况下是安全的:

  1. 他们引用的内容不能在引用超出范围之前消失。

就是这样。

这方面的例子是:

一个。不会在任何地方存储引用的函数的参数。

B.为容器中的深层嵌套或计算元素添加别名以使代码更简洁。

C.在具有临时生命周期的仿函数(例如自定义打印机对象)中

几乎在任何其他时候,您都应该使用拷贝或共享指针。

关于c++ - 什么时候可以安全方便地使用引用变量作为别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33008569/

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