关于用const声明函数的的一点疑问

rigye 2003-10-15 10:57:17
如此语句:
const char *Employee::getFirstName() const

我想问一下const放在函数声明的开始和结尾处有什么区别?
...全文
45 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rigye 2003-10-15
  • 打赏
  • 举报
回复
知道了,谢谢大家
langzi8818 2003-10-15
  • 打赏
  • 举报
回复
const放在函数声明的开始表示函数的返回对象不可以改变。
const放在函数声明的结尾一般用在类的成员函数中,它表示该成员函数不能修改该类中的成员变量
开头处的const说明函数的返回值,表示函数返回指向字符常量的指针。
后面的const表示,该函数不会改变对象的状态,因此该函数可以在这个类的常量对象之上调用。

efelix 2003-10-15
  • 打赏
  • 举报
回复
用c o n s t限定函数参数及返回值是常量概念另一个容易被混淆的地方。如果以值传递对象时,对用户来讲,用c o n s t限定没有意义(它意味着传递的参数在函数里是不能被修改的)。如果以常量返回用户定义类型的一个对象的值,这意味着返回值不能被修改。如果传递并返回地址,c o n s t将保证该地址内容不会被改变。
如果声明一个成员函数为c o n s t函数,则等于告诉编译器可以为一个c o n s t对象调用这个函数。一个没有被特别声明为c o n s t的成员函数被看成是将要修改对象中数据成员的函数,而且编译器不允许为一个c o n s t对象调用这个函数。

--------<TICPP>
北极猩猩 2003-10-15
  • 打赏
  • 举报
回复
开头处的const说明函数的返回值,表示函数返回指向字符常量的指针。
后面的const表示,该函数不会改变对象的状态,因此该函数可以在这个类的常量对象之上调用。
daizh 2003-10-15
  • 打赏
  • 举报
回复
const放在函数声明的开始表示函数的返回对象不可以改变。
const放在函数声明的结尾一般用在类的成员函数中,它表示该成员函数不能修改该类中的成员变量

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧