重载中碰到的左值和右值问题
2015-10-20 09:07
218 查看
double & Student::operator[ ] (int i)
{
return scores[i];
}
double Student::operator[ ] (int i)const
{
return scores[i];
}
对于 Student 的实例 stu 而言,stu[i]在第一个版本中可以为左值,而在第二个版本中只能为右值。
具体的例子如下:
double & Student::operator[ ] (int i)
{
return scores[i];
}
这个允许以下代码:
Student s;
s[0] = 100;
double Student::operator[ ] (int i)const
{
return scores[i];
}
这个只允许:
double d = s[0];
{
return scores[i];
}
double Student::operator[ ] (int i)const
{
return scores[i];
}
对于 Student 的实例 stu 而言,stu[i]在第一个版本中可以为左值,而在第二个版本中只能为右值。
具体的例子如下:
double & Student::operator[ ] (int i)
{
return scores[i];
}
这个允许以下代码:
Student s;
s[0] = 100;
double Student::operator[ ] (int i)const
{
return scores[i];
}
这个只允许:
double d = s[0];
相关文章推荐
- 自定义xml属性attr
- docker 创建启用systemd服务的容器
- REST API 安全设计指南
- 源码推荐(10.20):GitHub iPhone 客户端--MrCode,实时跟踪分析iOS App视图的小工具
- Android.mk文件语法规范及使用模板
- linux程序守护进程(shell)
- HttpClient如何访问需要提交客户端证书的SSL服务
- 别人走的路-3 和 传智播客教学视频分享
- OSG MFC入门基础系列
- 【数据结构】顺序栈
- radio判断是否为空
- 安装 ssh
- hashMap原理到hashcode与equals
- css hack
- 做我自己
- 代码托管平台
- MySQL各版本的区别
- Android环境搭建出现的种种问题(免费FQ)
- linux vi常用命令(显示行号&&替换字符串)
- 死锁的必要条件及如何处理死锁