注册 登录
编程论坛 C++教室

常量引用作为函数形参的作用,求教,探讨学习。

wolfcan 发布于 2021-12-21 10:45, 1036 次点击
C++小白,可能有些疑问都比较基础,大牛勿怪。
最近边学习C++,边看别人代码,有个疑问。对于常量引用const &作为类的成员函数的参数疑问。比如下面函数


void setParams(const CamParams& cpram);


据我现在的知识水平认为,传递引用参数cpram,那么就可以通过别名cpram修改原来的变量,但前面又加上const限定函数体内不能修改cpram,也即修改不了原变量。感觉这有点矛盾,如果不想修改原变量,干嘛还要引用传参呢?
经过思考,我觉得常量引用做函数参数用途如下:第一,通过引用传参可以避免重新拷贝原变量,节省时间和空间。第二,不想改变原变量,所以加上const是为了防止修改原变量。

请各位伙伴或者大神指点,为什么用常量引用作为函数参数,其有什么用途,主要用于哪些场合呢?谢谢。
2 回复
#2
rjsp2021-12-21 11:06
两个不相干的问题

引用:可以避免拷贝,另外不是所有类型都允许拷贝;
const:不需要传入对象必须具有可修改的能力,因为函数保证不会去修改它。
#3
wolfcan2021-12-21 16:10
回复 2楼 rjsp
谢谢
1