const 修饰函数返回值作用

修饰字面常量:

const int getval(void)
{
    return 100;
}

该函数返回值 const 可有可无。

 

修饰指针:

复制代码
const int* getptr(void)
{
    int *p = (int *)0xCC;
    return p;
}
int main()
{
    const int *p = getptr();//ok
    int *q = getptr();//error
    ...
    return 0;
}
复制代码

指针其指向内容不能被修改。

 

修饰运算符重载返回值:

函数返回为引用时,如果不想修改函数调用后的值,则用const &const &。 函数返回值引用常量表示不能将函数调用表达式作为左值使用。例如:

int & min( int & i, int & j);

可以对min函数调用进行赋值,因为它返回的是左值。例如min(a,b)=4min(a,b)=4或者min(a,b)+=min(b,a)+5min(a,b)+=min(b,a)+5,对大多数编译器都是合法的(但有些编译器会直接报错或者warning)。
但是,如果对函数的返回值限定为 const 的:const int & min ( int & i, int &j ),那么,就不能对 min ( a, b ) 调用进行赋值了。

修饰运算符重载返回值:

A operator+(const A& a1, const A&a2);
...

A a1, a2, a3;
a1 + a2 = a3;    //  不加 const, 该弱智行为合法

 若不加 const 修饰,上述奇怪行为是合法的。

 

 转自:(20条消息) const 作为函数返回类型_rose_gong的专栏-CSDN博客_函数返回const

posted @   补码  阅读(569)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示