腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
8
回答
为什么通过
常量
引用
传递
而
不是通过值传递?
c++
、
function
据我所知:当你通过值传递时,函数会对传递的
参数
进行本地
复制
并使用它;当函数结束时,它就会超出作用域。当您传递
常量
引用
时,该函数使用对传递的
参数
的
引用
,该
参数
不可修改。然而,我不明白为什么一个人会选择一个
而
不是另一个,除非
参数
需要修改和
返回
。如果你有一个
不
返回
任何东西的void函数,为什么选择一个
而
不是另一个呢? 编辑:所以基本上通过
常量
引
浏览 2
提问于2010-04-06
得票数 57
回答已采纳
1
回答
返回
常量
引用
参数
而
不
复制
c++
、
move-semantics
我想
返回
一个重对象,在不
复制
的情况下将其作为const
引用
传递。Standard Standard */} 但是,如果我如上所述将move构造函数声明为非const,则将调用
复制
构造函数我可以删除函数heavy_obj return_test(heavy_obj& t, bool ret)中的const,但是这样我就不能再将r值作为
参数
传递了。 如何实现我想要的行为?将move构造函数的<
浏览 20
提问于2021-08-13
得票数 2
回答已采纳
2
回答
不了解const在函数和类中的用法
c++
、
constructor
、
constants
、
variable-assignment
、
operator-keyword
我知道如果一个函数
返回
一个
常量
变量/对象,那么这个东西不能用在赋值运算符的左侧?这是正确的吗?此外,我注意到,如果您要执行以下操作:int &i = x; 上面的代码不会编译,除非我是int的“
常量
引用
”。对于函数,如果
参数
被声明为
常量
,传递到函数
参数
中的
参数
必须是
常量
吗?这本书的推理是“因为z不能被赋值给(x = y)
返回
的
常量
数组
引用
浏览 0
提问于2014-10-27
得票数 0
3
回答
复制
构造函数的
参数
选择
c++
、
pointers
、
reference
、
copy-constructor
最近在一次采访中,我被问及
复制
构造函数的
参数
。 作为一名实现
复制
构造函数功能的C++语言的设计者,你为什么要选择
常量
引用
参数
而
不是
常量
对象的
常量
指针。我有一些想法,比如,因为指针可以赋值为NULL,这在
复制
构造函数中可能没有意义(在语义上),以及指针变量是一个独立的对象(这在效率方面可能不是很好),
而
引用
只是实际对象的别名(因此传递对象的更好方法)。
浏览 2
提问于2009-09-19
得票数 1
回答已采纳
5
回答
引用
和
常量
引用
作为函数
参数
的区别?
c++
、
reference
A a; // create a local A object} 为什么函数bar的
参数
必须是
常量
引用
,
而
不仅仅是
引用
?Edit1:我知道
引用
是为了避免
复制
开销。const是只读的。但是在这里我必须让它成为一个
常量
引用
,否则如果我删除了" const ",g++会抛出一个错误。E
浏览 2
提问于2009-11-12
得票数 6
回答已采纳
1
回答
c++:没有匹配的函数调用,特别是它被声明为
参数
类型
不
匹配
c++
、
compiler-errors
、
constants
、
mismatch
obj.getAddressSpaceObj().resolve(objOne, objTwo.pointer, objThree); 我深入研究了代码,发现这个错误是由getOtherObj()
返回
的
引用
类型引起的我使其
返回
对类定义中的AddressSpace对象的
常量
引用
,请参见 return addressSpace;}
浏览 0
提问于2013-03-16
得票数 1
回答已采纳
3
回答
为什么as_const禁止右值
参数
?
c++
、
rvalue
、
c++17
我想问为什么as_const禁止右值
参数
, cppreference.com (即为什么标准人员这样做,
而
不是为什么cppreference.com在这方面特别
引用
他们。这个(人工的)例子会产生一个错误(用户想让它保持安静)指出,如果我们只是删除了右值
引用
重载的删除,它将静默地将右值转换为左值。对,但为什么
不
优雅地处理右值,并为右值输入
返回
常量
右值,为左值输入
返回
常量<
浏览 10
提问于2016-08-20
得票数 19
回答已采纳
5
回答
按值调用与按
引用
常量
调用
c++
、
reference
、
constants
我对值调用和
引用
常量
调用之间的区别感到有点困惑。有人能给我解释一下吗。例如,它们是否都可以防止调用者
参数
的更改,它们是否对所有对象大小都是快速的,是
复制
参数
而
不是
复制
参数
,以及在
复制
时哪个使用了更多的内存?
浏览 1
提问于2013-03-12
得票数 3
4
回答
常量
引用
返回
的
常量
引用
传递的
参数
c++
常见问题解答说,
常量
引用
传递的
参数
和
常量
引用
返回
的
参数
可能会导致
引用
悬空。 但是,如果
参数
是通过
引用
传递并通过
引用
返回
的,则可以。我知道它在
常量
引用
的情况下是不安全的,但是当
参数
是非
常量
引用
时,它又如何安全呢?FAQ的最后一行写道:“请注意,如果函数通过非常数
引用
(例如,f(
浏览 1
提问于2009-03-20
得票数 12
回答已采纳
3
回答
返回
常量
引用
c++
、
operator-overloading
在第10章中,当我研究操作符重载时,在一个示例程序"*this“中
返回
作为
常量
引用
。Counter a = ++i; 当前对象是否分配给
常量
引用
,并将
常量
引用
的值
复制
到使用默认
复制
构造函数创建的新对象?
浏览 1
提问于2012-04-08
得票数 1
回答已采纳
1
回答
在已经有移动ctor的类中,copy ctor中的const是多余的吗?
c++
、
c++11
如果我有一个同时定义了
复制
ctor和移动ctor的类,我是否需要将
复制
ctor的
参数
设为const
浏览 0
提问于2016-11-03
得票数 0
2
回答
C#中的Const函数
参数
c#
可能重复: 如果我的内存是正确的,下面的意思是,方法不能更改
引用
,
而
引用
本身是一个
常量
引用
。我问这个问题的原因是,我试图通过
引用
传递一个对象(为了速度),同时
不
希望任何人修改它。
浏览 3
提问于2012-06-11
得票数 18
回答已采纳
2
回答
关于将临时对象传递给const
引用
的问题
c++
、
reference
vector<double> v; // no elements} 现在,等级函数使用const
引用
对我来说,这意味着应该
复制
emptyvec()
返回
的临时对象,因为它是作为局部变量在堆栈中创建的,这在我看来很奇怪。这到底是怎么回事?同样在另一个页面上,他将一个const
引用
传递给一个函数,该函数通过值获取其
参数
并对其进行修改。可以将vector<double&
浏览 4
提问于2017-02-13
得票数 6
回答已采纳
2
回答
非成员函数可以
返回
常量
值吗?
c++
、
constants
在我的例子中,让调用者修改
返回
的对象是没有意义的,所以我想把它标记为不可修改。
浏览 1
提问于2011-04-17
得票数 1
回答已采纳
1
回答
C++模板类
复制
构造函数和赋值运算符
c++
、
class
、
templates
我的问题是,我的类将三个
常量
引用
作为
参数
,并且这些值必须是私有的(定义),然而,我还必须实现
复制
构造函数和重载赋值操作符。return *this; T1 const& a; T3 const& c;如何实现
复制
构造函数和赋值运算符,
而
不
赋值给
常量
变量?
浏览 1
提问于2012-10-15
得票数 1
回答已采纳
3
回答
当对象从函数
返回
时使用自定义
复制
构造函数的C++?
c++
、
constructor
, char* argv[])Tree t1(123, "xyz");t2.toString(); } 从函数getTree()
返回
的树对象应该使用自定义的
复制
构造函数
复制
到对象t2,
而
编译器则会抱怨"error: no matching function for call to ' Tree ::Tree(Tree)'“。
浏览 0
提问于2015-06-06
得票数 0
4
回答
使用对函数和IO对象的
引用
(作为
参数
)的目的是什么?
c++
、
io
、
reference
为什么
引用
IO流
而
不是流本身?同样的问题,关于
引用
function.Trying来研究这个主题,我仍然不能理解。 在下面的代码中,函数只打印给定QueryResult对象在其给定流上的结果。
浏览 0
提问于2019-10-28
得票数 1
4
回答
move构造函数应该接受
常量
还是非
常量
的右值
引用
?
c++
、
c++11
、
rvalue-reference
、
move-constructor
在几个地方,我已经看到推荐的
复制
和移动构造函数签名,如下所示:{ T(const T& other);};我明白这是怎么回
浏览 2
提问于2012-05-27
得票数 39
回答已采纳
1
回答
C++
引用
混淆(以及一些
复制
构造函数的混淆)
c++
、
reference
、
constructor
、
pass-by-reference
所以我有一个关于通过
引用
传递的问题。我尝试通过
引用
将对象传递给成员函数,并让该成员函数使用我作为
参数
传递的
引用
调用另一个成员函数。但是,编译器指出未找到所调用的成员函数。为什么会这样呢?
浏览 0
提问于2013-06-28
得票数 2
回答已采纳
5
回答
在C++11中,
常量
引用
什么时候比按值传递更好?
c++
、
c++11
我有一些C++11之前的代码,在这些代码中,我经常使用const
引用
来传递像vector这样的大
参数
。示例如下: return a[0];我听说有了新的C++11特性,您可以按如下方式按值传递vector,
而
不会影响性能。int hd(vector<int> a) {} C++11的移动语义使得按值传递和
返回
更具吸引力,即使对于复杂的对象也是如此。如果是这样,什么时候像选项
浏览 110
提问于2014-07-03
得票数 58
回答已采纳
点击加载更多
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
云点播
活动推荐
运营活动
广告
关闭
领券