为什么有的函数的返回值为const?

原创 2006年05月22日 14:40:00

对返回值使用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的用法,特别是用在函数前面与后面的区别!

const的用法,特别是用在函数后面 在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针。可以改变this所指向的值,但不能改变 this所保存的地址。 在 cons...
  • limingmcu
  • limingmcu
  • 2016年10月09日 17:50
  • 2179

C++ const函数返回值必须为const引用

编译正确代码: #include #include #include using namespace std; class T{ public: T(string p) { pt...
  • SprintfWater
  • SprintfWater
  • 2013年04月30日 15:15
  • 4175

const 作为函数返回类型

const 作为函数返回类型,最终目的是希望调用函数时将返回值作为常量处理。细分为三种情况。返回字面常量const int getval(void) { return 100; }该函数返回值...
  • rose_gong
  • rose_gong
  • 2015年03月19日 09:58
  • 415

为什么操作符 + - * / 返回值应该为const

为什么操作符 + - * / 返回值应该为const,以及注意点
  • lecky1991
  • lecky1991
  • 2015年11月03日 10:22
  • 444

C++ const函数返回值必须为const引用

编译正确代码: [html] view plain copy  print? #includestdio.h>   #include string....
  • dearwind153
  • dearwind153
  • 2016年07月23日 16:08
  • 641

const的用法,特别是用在函数前面与后面的区别!

                                                                        const的用法,特别是用在函数后面 在普...
  • ZCF1002797280
  • ZCF1002797280
  • 2012年08月01日 09:50
  • 42025

C++中const在函数名前面和函数后面的区别

一、概念   当const在函数名前面的时候修饰的是函数返回值,在函数名后面表示是常成员函数,该函数不能修改对象内的任何成员,只能发生读操作,不能发生写操作。 二、原理:  ...
  • zhou199019901990
  • zhou199019901990
  • 2014年08月14日 08:49
  • 9360

const char*作为返回值的困惑

首先标题都不知道怎么样才能表达这个困惑,索性使用这个是因为当const char*作为返回值的时候有两个困惑之处: 1、如果有下面的情况 const char* Func(std::w...
  • fg5823820
  • fg5823820
  • 2012年11月17日 20:56
  • 3478

c/c++中const成员函数的返回值类型

const成员函数又称为访问函数,在const函数体内不能修改成员变量的值。 那么对于const函数的返回值呢? 结合网上内容,写了一个小的实验代码, class T{ public: struct...
  • u011567017
  • u011567017
  • 2017年01月05日 20:31
  • 649

const的用法,特别是用在函数后面

const的用法,特别是用在函数后面   在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针。可以改变this所指向的值,但不能改变 this所保存的地址。 在 ...
  • u013077167
  • u013077167
  • 2015年11月01日 21:41
  • 1755
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:为什么有的函数的返回值为const?
举报原因:
原因补充:

(最多只允许输入30个字)