LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1083|回复: 2

谁见过 void print()const 这样写法的函数?

[复制链接]
发表于 2007-1-2 10:04:50 | 显示全部楼层 |阅读模式
谁见过 void print()const 这样写法的函数?
C++书本上有:

class C
{
public:
        void print()const;
...........
}

void C::print()const
{..........}

请问const在这里是什么意思?我第一次见到在函数括号后面有const限制
发表于 2007-1-2 10:40:10 | 显示全部楼层
const在这里是起到修改this指针类型的作用。

譬如,你用C实例化为一个a对象。在调用a.print()时,隐含的this形参是一个指向a对象的const C *类型的指针,这时,print方法就类似于如下定义:
  1. void C::print(const C * this)
  2. {
  3.      ……;
  4. }
复制代码
这时,this是指向一个const对象的指针,这就意味着你所调用的print函数是不能对这个a对象进行修改的。这样的成员函数叫做常量成员函数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-2 11:18:42 | 显示全部楼层
谢谢lyanry指导!明白了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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