| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 895 人关注过本帖
标题:[求助]函数问题
只看楼主 加入收藏
触电
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-7-26
收藏
得分:0 

那我就顺便再问个问题吧
double operator[](int i)const
double operator[](int i)
这2个函数的真正区别究竟何在?
我知道常函数是不允许修改调用对象的数据成员的
所以double operator[](int i)const
到底何时被调用呢?

2006-08-27 14:34
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 
你不是說出了區別了嗎?

原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-27 15:11
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
     我也不清楚这个问题。


     我只是说下我的看法:如果一个类里写了这两个函数的话,const应该永远无法被调用到。

     之所以我们写这个函数,是为了显示的说明这个函数不会修改对象内的数据成员,这是一个好的习惯。

     但是我有疑惑的是,虽然这两个函数一个有const一个没有.为什么不算是暧昧的重载呢?

     我觉得从参数和函数名来看似乎没有办法区分谁被调用啊。

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-08-27 15:14
触电
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-7-26
收藏
得分:0 
是不是有个精确匹配的问题存在呢?
2006-08-27 17:34
触电
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-7-26
收藏
得分:0 
大家一起来讨论下吧
2006-08-27 17:35
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 
討論得到的結果有意義?

原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-27 17:36
触电
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-7-26
收藏
得分:0 
哦,那随便
2006-08-27 18:34
aen0716
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-7-19
收藏
得分:0 
2006-08-29 11:04
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
以下是引用wfpb在2006-8-27 15:14:15的发言:
我也不清楚这个问题。


我只是说下我的看法:如果一个类里写了这两个函数的话,const应该永远无法被调用到。

之所以我们写这个函数,是为了显示的说明这个函数不会修改对象内的数据成员,这是一个好的习惯。

但是我有疑惑的是,虽然这两个函数一个有const一个没有.为什么不算是暧昧的重载呢?

我觉得从参数和函数名来看似乎没有办法区分谁被调用啊。

今天看MFC程序时,看到一个我以前都不知道的问题。

const成员函数与普通成员函数的不同:const对象只能调用const成员函数。


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-08-30 20:24
触电
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-7-26
收藏
得分:0 
这个我到是知道的比如说我建立一哥CONST对象
const Student stu;
而Student类又一哥非const的成员函数Show()
我们以前传递参数的时候如果不想修改原始数据
那只要吧形参申明为const的指针或是引用即可
但是这个Show()是没有参数的,并且我的对象是const
所以,如果不把这个Show函数申明为const的话,编译器就会报错
因为它不能确保Show函数不修改对象的数据成员
2006-08-31 12:54
快速回复:[求助]函数问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013043 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved