QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 657|回复: 3

请教一个语法问题!

[复制链接]
发表于 2003-12-10 21:15:43 | 显示全部楼层 |阅读模式
在linux的源文件中经常看到类似的函数定义和实现
KPopupMenu *menu() const;

有一个地方不懂, 函数定义中最后面的const代表什么?

谢谢!
发表于 2003-12-10 22:21:04 | 显示全部楼层
因为一个常量对象不能调用对象里的非常量函数   所以就把函数也写成常量的
记得好象是这样说得     大概我表达的不好

具体的东西忘记了  还得要去翻翻书
回复

使用道具 举报

发表于 2003-12-10 23:11:48 | 显示全部楼层
表示此成员函数不会修改类的数据成员.
回复

使用道具 举报

 楼主| 发表于 2003-12-10 23:40:45 | 显示全部楼层
彻底懂了,谢谢。下面是我找到的一个例子

class X  {

   int j;
public:
  X::X() { j = 0; };  
  int lowerBound() const;            // DOES NOT MODIFY ANY DATA MEMBERS
  int dimension(X x1, const X &x2) { // x2 PARAMETER WON'T BE MODIFIED
     x1.j = 3;       // OKAY; x1 OBJECT IS MODIFIABLE
     x2.j = 5;       // ERROR; x2 IS NOT MODIFIABLE
     return x2.j;
     }

};
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-9 05:56 , Processed in 0.035972 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表