您的位置:首页 > 其它

关于在函数前加const 和成员函数后加const 的记录

2017-03-24 19:56 411 查看
先说第一个问题吧。就是在函数前加一个const,一般人都会说返回值是常量。这是肯定的,但是有一个问题是值得深思的。这有什么卵用呢?一般我们调用函数之后返回值都是右值,所以说返回一个常量没有什么意义是有一定道理的。例如:

const int get()
{
int x = 9;
return x;
}
// main body;
auto x = get();


那么这么调用的时候就没有什么卵用啊,因为函数的返回值只是一个临时变量。赋值给x之后就回收了,它是否是常量貌似没有什么意义呀。我想了一下我觉得存在即合理,我想到了一种比较有用的调用方式。如果返回值是一个指针呢?那么意义是否就值得去思考了呢?

const int* get()
{
auto x = new int(9);
return x;
}
auto x = get();
*x = 10; // This is a great error, because const variance mustn’t change.
delete x;


这个示例是不是就有意义了,当需要一个指针常量时这个函数就有用。

在函数后面加一个const必须是成员函数。表示在该函数体中不能修改成员变量,只能够应用。const 对象只能调用const成员函数。(cosnt对象不能调用非const成员函数)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  函数 const-函数