读书人

const int getData()与int getData()

发布时间: 2012-03-21 13:33:15 作者: rapoo

const int getData()与int getData() const区别在哪里?
我总是分不清,请高手指点一二

[解决办法]
const int getData()是指这个函数的返回值是个常量,只能使用他(这个返回值)不能改变它!
int getData()const 是指这个函数只能被常量对象访问!
兄弟,给分啊!
[解决办法]
c和c++函数名字的阅读是有规律的,一般可以从函数名开始,然后先右后左以此阅读。比如
const int getData()
可以读作:
getData is a function that returns a const int

int getData() const
可以读作:
getData is a function that returns an int and it is const
可见,int getData() const中的const是修饰函数本身的,所以将不会改变生存空间中变量的值。楼上说的“只能被常量对象访问”,似乎不太正确。
[解决办法]
const int getData()
函数的返回值被const修饰,不能作为左值。
对于内置类型,返回值,这么使用好像没什么意义。
因为返回的是临时变量,临时变量已经是const
如果返回一个类对象的引用,加const可以确保,返回值不会被直接操作。

int getData() const
该函数是类的const成员函数
即该函数不会修改类的数据成员
当定义一个const对象时,只能调用const成员函数,
以保证类的数据成员不会改变。
[解决办法]
to ckt1120
返回值不会被直接操作。

是什么意思
[解决办法]
被用作左值。

可以对其进行赋值,通过其调用一些接口等。


读书人网 >C++

热点推荐