+ -
当前位置:首页 → 问答吧 → 请问这3个const分别代表什么意思啊。

请问这3个const分别代表什么意思啊。

时间:2011-12-12

来源:互联网

const stock &stock::a(const &stock)const
这是一个函数声明 stock是一个类,a是类的成员函数。

作者: pudgezc   发布时间: 2011-12-12

一个修饰返回值
一个修饰参数
一个表示函数内部只能用const成员变量

作者: gykgod   发布时间: 2011-12-12

修饰了以后会 怎样~~~?

作者: pudgezc   发布时间: 2011-12-12


C/C++ code
const stock &stock::a(const &stock)const

先说最右边那个const
这个const只用于类成员函数,加上这个const是禁止这个函数修改类的数据成员
再说参数里的const
修饰参数,这个参数的值在函数体内不允许被修改
最后说下第一个const
修饰返回值,返回一个const的引用,
所以你只能用这两种形式来接收:stock ms = &stock::a(const &stock)const;或者
const stock &ms = &stock::a(const &stock)const;
一个是拷贝,一个是常引用,一个可以修改,但是只是修改的是副本,一个不能修改
所以返回值加上const是为了防止传引用被外部修改类内部数据

作者: qscool1987   发布时间: 2011-12-12

引用 2 楼 pudgezc 的回复:
修饰了以后会 怎样~~~?
都不能改变

作者: quwei197874   发布时间: 2011-12-12

最后一个const修饰调用此成员函数的对象, 让此对象在函数内不能改变。此时对象类型为const stock *const this,函数返回值若为引用类型,需在之前加const

作者: pqpqr   发布时间: 2011-12-12

3楼是对的 我是大菜鸟瞎说的

作者: gykgod   发布时间: 2011-12-12

const stock &stock::a(const &stock)const

第一个表示: 函数a返回的是const类型的stock对象;

第二个表示: 函数参数是const类型的stock引用对象;

第三个表示: 函数是类的const成员函数。

作者: wzx_1987   发布时间: 2011-12-12

引用 3 楼 qscool1987 的回复:
C/C++ code

const stock &stock::a(const &stock)const

先说最右边那个const
这个const只用于类成员函数,加上这个const是禁止这个函数修改类的数据成员
再说参数里的const
修饰参数,这个参数的值在函数体内不允许被修改
最后说下第一个const
修饰返回值,返回一个const的引用,
所以你只能用……

+++

作者: jixiang1983   发布时间: 2011-12-12