const int getData()
是指这个函数的返回值是个常量,只能使用他(这个返回值)不能改变它。
int getData()const
是指这是个常量函数只能被常量对象(即常量函数等)访问。
这里一定要注意const的位置;到底是在括号后面还是括号前面;
1、常量成员函数
(1)在函数声明后面可以加const关键字
形式如下int getx() const;
(2)在成员函数后面加const关键字,那么该成员函数可以成为常量成员函数。
(3)常量成员函数执行期间不能修改其所作用的对象。因此常量成员函数中不能修改成员变量的值(静态成员函数除外,因为其不属于类的一部分,而是被所有对象共享),也不能调用同类的非常量成员函数(静态成员函数除外)。
例如:
#include <iostream>
using namespace std;
class Sample
{
public:
int value;
void GetValue()const;
void fune(){};
Smple();
};
void Sample::GetValue() const
{
value=0;//错误,因为在调用过程中改变了其所作用的对象的值;
fune();//错误,因为在常量成员函数中不能调用非常量成员函数;
}
int main()
{
const Sample o;
o.value=100;//错误,常量对象不可被修改;
o.fune();//错误,常量对象上面不能执行非常量成员函数&#