问题标签 [const-reference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在 c++ 中,为什么编译器在 const 也可以工作时选择非常量函数?
例如,假设我有一个类:
在代码的其他地方,我有这样的东西:
有谁知道为什么编译器会在这种情况下选择非常量版本?
这是一个有点做作的例子,但我们试图解决的实际问题是定期自动保存一个对象,如果它已经改变,并且指针必须是非常量的,因为它可能会在某个时候改变。
c++ - 从函数返回对局部变量的 const 引用
我对从函数返回对局部变量的引用有一些疑问:
我的问题是=>
执行是否
getA1()
正确?我觉得这是不正确的,因为它返回的是局部变量或临时变量的地址。(1,2,3)中的哪些语句
main
会导致未定义的行为?标准是否保证在
const A& newA1 = getA1();
引用超出范围之前不会破坏由 const 引用绑定的临时绑定?
c++ - 是否可以更改临时对象并将其作为参数传递?
是否可以更改临时对象并将其作为参数传递?
众所周知,将临时对象分配给 const 引用会延长该临时对象的生命周期。那么我的代码的#4 和#5 行呢?引用 x 在函数 func_ref 中是否始终有效?问题是 operator-- 返回一些引用,编译器看不到这个引用和我们创建的临时值之间的任何关系。
c++ - 为什么这行得通?在 C++ 中返回 const 引用
我在玩弄 C++ 和 const 引用,很困惑为什么这段代码有效:
结果:
以下是我的想法:
var 存储对 a_ 的引用。
当 a 被删除时, a_ 也应该被删除。
当再次访问 var 时,它不再包含有效的引用,并且应该发生分段错误。
为什么这行得通?我不相信我会制作临时副本。
c++ - C++ 中的引用初始化
谁能向我解释为什么这两个陈述之间存在差异?
A&
它说从临时类型的类型的非常量引用的无效初始化A
为什么在const
这里很重要?
c++ - 如果失败,如何返回 const QString 引用?
考虑以下代码:
如何在不更改方法的返回类型的情况下避免有一个空的 QString ?(似乎返回分配在堆栈上的空 QString 是个坏主意)
谢谢。
c++ - const 引用类成员是否会延长临时对象的寿命?
为什么会这样:
给出以下输出:
答案是:
代替:
答案是:四
c++ - 通过组合添加类功能
假设我们有一个抽象类Element
,其中类Triangle
和Quadrilateral
派生自。
假设这些类与取决于元素形状的插值方法结合使用。所以,基本上我们创建了一个抽象类InterpolationElement
,我们从中派生InterpolationTriangle
和InterpolationQuadrilateral
。
Triangle
然后,为了在和Quadrilateral
类中包含插值功能,我们在Element
type 类中添加了一个 const-reference 数据成员InterpolationElement
,即:
然后,我们创建一个方法(如 Scott Meyers,Effective C++ 所述),将类的本地静态对象实例InterpolationTriangle
化为
所以这个类Triangle
可以像这样构造:
这是我的问题:为了在我的班级中加入插值方法,这种方法是否正确Element
?这是在专业场景中使用的吗?
我可以直接在类(作为纯虚拟)上实现所有插值方法,Element
并在派生类Triangle
和Quadrilateral
. 然而,这种方法在我看来很麻烦,因为每次我需要改进或实现新的插值功能时,我都必须在这些类上这样做。此外,使用这种方法,类变得越来越大(许多方法)。
我想听听你的一些建议和意见
提前致谢。
额外细节:
c++ - map 的 const_reference 或迭代器(实际上不迭代时)
我有一些代码使用迭代器循环遍历 unordered_map 的所有元素,但在该循环中还有其他几个进程,我将迭代器存储到地图中的特定元素,并且通常会进行大量跳转但不迭代(不包括最外层迭代器)。
在我看来,unordered_map::const_reference
如果我实际上没有进行迭代,使用 a 到一个元素可能更合适。这是真的?阻止我使用 const_references 的唯一原因是,从我的快速谷歌搜索来看,它们似乎很少被大众使用,或者至少很少讨论。
java - 返回数组列表的 const 引用
我真的很佩服java特性,我不想放弃使用它来解决下一个问题:
我有一个可能被继承的类,它的内部是一个private ArrayList arr;
所以 setter 函数是好的,但是 getter 函数return arr;
返回对该变量的引用,任何人都能够编辑我不想要的整个数组,并且私有不会'没有任何意义!
在 C++ 中,我只会return const arr;
返回对变量的常量引用。
我非常需要不要克隆或手动复制变量,因为有太多计算需要(只读变量)为什么在 java 中没有返回 const ???? 有什么办法可以逃避复制吗?
ps(final ArrayList<Integer> arr;)
不是一个选项,因为该数组总是改变大小或元素值。
如果我找不到解决方案,我威胁要回到 C++ 或公开所有内容,你永远不应该得到我的软件:D
编辑:一个更重要的问题:我是否要求一些不好的东西(软件工程方面)我的意思是如果 JAVA 创建者认为没有 const 引用(返回只读引用),那么我必须要求一些可以在其他方面处理的东西方式。或者我的程序设计错了我很困惑。