c++primer plus的P540
1条回答 默认 最新
- Kim_小星兴 2020-01-04 17:06关注
首先需要解释的是 取址符号 '&',第一个operator 前的类型是double & ,也就是说,
Student a; a[0] = 1.1;
那么 a对象里面的scores[0]的值就会真的被改变.
这样可能不明显我们换一个函数你就有感觉了class Student { public: int id[20]; int& at(int x) { return id[x%20]; } }; int main(void) { Student a; a.at(0) = 4; cout<< a.id[0]; return 0; }
这是第一个函数的作用,就是让**外部能使用运算符直接修改这个对象里面的值**,而不是使用 一个函数setScores(int index,double value);
第二个后面加上了const,也就意味着这个函数与上一个函数不一致,注意这并不是重载,在编译器里认为这两个函数是不一样的函数,const表示他可以被const 属性的对象调用;
同时也是因为重载函数不允许传参一致但返回值类型不一致;
那么加上这个关键字之后的作用是什么呢?
作用就是: 这个函数内做的所有操作都不能改变this->
里面的任何值,调用方法也只能调用const 后缀的方法,但是相对的如果我们 定义了一个变量const Student a
,那么我使用a[0]
那么就只能是第二个函数.
不知道这样解释你明白了么解决 无用评论 打赏 举报
悬赏问题
- ¥15 求帮我调试一下freefem代码
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图