为什么有的函数的返回值为const?
来源:互联网 发布:淘宝可以办假护照吗 编辑:程序博客网 时间:2024/05/01 02:34
对返回值使用const有可能提高一个函数的安全性和效率,否则还会出问题
例如:
const rational operator*(const rational& lhs,
const rational& rhs);
很多程序员第一眼看到它会纳闷:为什么operator*的返回结果是一个const对象?因为如果不是这样,用户就可以做下面这样的坏事:
rational a, b, c;
...
(a * b) = c; // 对a*b的结果赋值
我不知道为什么有些程序员会想到对两个数的运算结果直接赋值,但我却知道:如果a,b和c是固定类型,这样做显然是不合法的。一个好的用户自定义类型的特征是,它会避免那种没道理的与固定类型不兼容的行为。对我来说,对两个数的运算结果赋值是非常没道理的。声明operator*的返回值为const可以防止这种情况,所以这样做才是正确的。
- 为什么有的函数的返回值为const?
- C++ 函数返回值声明为const的原因
- C++ 函数返回值声明为const的原因
- 函数返回的临时对象为const类型,const引用
- C++ const函数返回值必须为const引用
- C++ const函数返回值必须为const引用
- 为什么操作符 + - * / 返回值应该为const
- const作为函数返回值的作用
- 返回值为引用或指针的成员函数加const要注意
- 再谈const: 用const 修饰函数的返回值
- 为什么static 成员函数不能为const
- 修饰函数和函数返回值的const的差别
- 修饰函数和函数返回值的const的差别
- 修饰函数和函数返回值的const的差别
- const与函数返回值
- 返回值为函数指针的函数
- const参数,const返回值与const函数
- const参数,const返回值与const函数
- Datagrid頁面間傳值
- 健康水果排行榜
- oracle学习笔记(1)
- 创业注意事项
- Mysql学习笔记(1)
- 为什么有的函数的返回值为const?
- 苹果老板乔布斯在斯坦福大学的演讲
- Source Insight使用教程(zz)
- Windows 系统错误代码大全
- VB启动控制面板大全
- Socket编程例子 - TCP Shell.c
- 三层结构windows98以及2000的配置说明 适用于 SocketConnection 和 DComConnection
- 常用符号的英文表达
- 精妙SQL语句