新手请教关于const的问题

ding525 2008-09-28 03:05:22
请看这个语句,const char* getBuffer() const { return m_buffer; }
我知道第一个const是表示getBuffer()函数返回一个字符常量的指针,可是这第二个const又是做什么用呢?
...全文
96 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
adriano119 2008-09-28
  • 打赏
  • 举报
回复
第一个const是修饰返回值的,即掉用该函数后,返回值不能做为左值,不能修改
第二个const是修饰整个函数的,即该函数不能修改任何内容
visir 2008-09-28
  • 打赏
  • 举报
回复
第二个const在类设计时很常用, 表示这个成员函数不可以改变成员变量, 也不可以调用其它非const的成员函数
皮蛋C 2008-09-28
  • 打赏
  • 举报
回复
1.防止修改类的成员变量,但如果成员变量加了mutable这个const就失效了.
2.供该类的const对象调用.
vcPlayer 2008-09-28
  • 打赏
  • 举报
回复
第二个表示为“常”对象才能访问的函数!表示该对象不会更改其值。
lyghe 2008-09-28
  • 打赏
  • 举报
回复
理论上如楼上所说。不过,也要看编译器的人品的。g++,vc会检查并报error,cb只会报warning
ldming 2008-09-28
  • 打赏
  • 举报
回复
ding !!
OenAuth.Core 2008-09-28
  • 打赏
  • 举报
回复
第2个const一般在类中比较常用,一般函数少用。
为了防止修改成员变量,如
Class A
{
pirvate:
int a;
int get() const {return a;}//正确,因为你没改变a的值
void set() const{ a=1;}//错误,因为会改变a的值
};

65,179

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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