const int& f() const; 和 int& f(); 在调用时候怎么区分和各有什么用途...

发布网友 发布时间:2024-10-23 21:54

我来回答

3个回答

热心网友 时间:2024-10-30 19:32

const int &f()const 首先表明函数不能修改调用的成员变量,然后int &表明函数返回一个int类型的引用,但是前面的const表明不能通过这个返回的引用来改变它的值。而int &f()仅表示函数返回一个int型引用。调用哪个函数就要看你创建的对象了,如果你创建的对象是const的,那么只能调用第一个,因为不能修改对象成员变量。
这个函数f()必然是有参数的,不然不可能返回一个引用,如果参数是const类型的那么就是第一个,如果不是就第二个。

热心网友 时间:2024-10-30 19:37

你既然知道两个const的意义,怎么还会觉得重复呢,完全不是一回事啊。
函数的返回值是const int& ,表明类的实现者禁止类似这样的赋值发生:
f() = 3;而如果函数的返回值是 int& 则f() = 3;允许.
函数体用const修饰,表示此函数不能修改类中的数据成员。
比如类中有个数据成员x,则这样的函数定义const int& f() const { x = 3; }不被允许。

热心网友 时间:2024-10-30 19:37

引用值一旦初始化后就不能再更改!即没有const double const&a = 1;只有const double&a = 1;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com