c++函数返回数值引用,函数声明前加不加const的区别?

const int &a(int &b);
int &a (int &b);

const关键字的作用就是对数据的读取保护,防止恶意修改。函数接口前面加const自然就是对返回值的一个读取保护,const int &a(int &b);//这里又是一个整形数据引用,那其他函数调用这个接口的获取返回值的时候是不能对该int数据进行一个写操作的。追问

那这个返回值可不可以赋给一个普通的int变量,还是一定要赋给const int变量

追答

那肯定是不行的,编译器肯定会报无法将一个常量赋值给一个变量的
const int a;//a就是常量,只读,不能修改
int a;//a是变量,可读写的

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-28
当函数返回引用类型时,没有复制返回值。相反,返回的是对象本身。
const int &a(int &b); 做为返回值使用,说明函数的返回值是不 能被修改的,
在取得返回值时应用const int &c = a(b);对不同参数定义时不同的形式,
可参见定义变量时使用方式;本回答被网友采纳

在C++中,函数名前的const和函数名后的const有区别吗?
有区别。首先要知道函数名后面加const只能用于成员函数。int const func(); \/\/合法,相当于const int func();int func2() const; \/\/非法,对函数的const限定词只能用于成员函数 在成员函数中,const加在函数名前和后也是有区别的。例如:class A { int const func();int func() const;};int ...

C++中const在函数名前面和函数后面的区别
在函数名前面,但是对返回值的修饰就要看你的需求了,const在前面和后面表示的意义不一样 a.const int fun1() \/\/这个其实无意义,因为参数返回本身就是赋值。b. const int * fun2() \/\/调用时const int *pValue = fun2();\/\/我们可以把fun2()看作成一个变量,即指针内容不可变。c.int* co...

梳理c++ const 修饰函数
首先,const返回值用于保护引用类型的函数返回值不被意外修改。当函数返回引用时,如成员变量或参数引用,避免其作为左值被修改,添加const关键字至关重要。例如,对于返回引用的成员函数,若尝试修改返回值,程序将报错。其次,const修饰实参在函数调用时防止实参值被意外改变。通常使用pass by reference以节省...

C++返回值为Const &的看法大虾给解释下
返回const引用后,返回值不能作为左值。这是特性,加以合理利用,才能写出最佳程序。

c++返回引用的问题
对于函数的返回值,如果不是引用,那么只是暂时性的,举个例子,一个函数返回了一个int变量,那么当这个变量返回给外部使用后,这个变量的内存就立刻被系统回收了,也就是说这个值再也不存在了。如果返回一个类的对象的话,建议还是把返回值写成引用的形式,这样做有两个好处,第一个是保证了返回的类...

c++中函数重载,参数const 变量与非const 变量算是类型不同吗?如果相...
const不改变变量类型,将它加在变量之前用来说明该变量为常量,该变量的值要求不能被修改。作为函数参数时,加上const后可以让该参数在函数调用后保证其值不被修改,如何遇到修改该参数的值时,编译会出错,避免出现因修改了该参数的值而出现错误。int和unsigned int是不同的数据类型,后者不包含负数,...

C++中const的强大用法:修饰函数参数\/返回值\/函数体
在C++中,const主要用于保护数据不被意外修改。除修饰常量外,还用于修饰函数参数、返回值和函数体,以提升程序健壮性。const修饰函数参数,可保护参数不被函数内部意外修改。例如,对变量a和b添加const修饰后,函数内尝试修改a或b会导致编译错误。const修饰函数返回值,确保返回值不可被修改。如使用const...

在C++中,函数的一般的返回值与&返回和const &返回有什么区别?
加了CONST就不会改变传值

c++中函数参数返回值用string好还是const char *好
第二个好啊。因为string为一个class,返回string的时候,会产生临时对象,然后调用析构函数,cpu消耗大,但是string的引用,就可以解决上述问题,但是引用又很麻烦,不要返回指向栈内存的引用,但有时候有绝对不可用引用,例如返回代码区域临时定义的string(栈内存)。对于cosnt char * 返回的指针速度快,...

c++ 什么时候得在函数后面加const
函数后面加const关键字,这告诉编译器,该函数不会改变成员变量的值(因为是成员变量,所以只有类或结构体的成员函数才能加const函数)。也让阅读代码的人一眼看就知道这个函数不会改变成员的值,有利于代码可读性。一般情况下,函数不改变成员变量的值,也可以不加const,但是在某些情况下必须加,比如:...

相似回答