游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2778|回复: 7

函数什么要返回const bool?

[复制链接]

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2006-11-6 15:27:00 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

97

主题

590

帖子

590

积分

高级会员

Rank: 4

积分
590
QQ
发表于 2006-11-6 16:58:00 | 显示全部楼层

Re:函数什么要返回const bool?

C++书上写着呢

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
 楼主| 发表于 2006-11-6 17:26:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-11-6 17:40:00 | 显示全部楼层

Re:函数什么要返回const bool?

返回const bool是有必要的。
考虑如下情况:
bool GetBool();
bool a = GetBool();
a = false;
if(a)
{
...
}
但是GetBool()的编写者会认为他并不希望别人拿他的函数的返回值在做修改,所以声明为:
const bool GetBool();
这个时候你用
bool a = GetBool();
编译器是会报错的,必须是const bool a = GetBool(); 或者用const_cast强转,如果是后者,就表明使用者很明确他的确需要这样的转换。

返回const的东西是个好习惯,请用在你的c++代码你。

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-11-6 18:07:00 | 显示全部楼层

Re:函数什么要返回const bool?

对于基本类型没必要这样吧。

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
 楼主| 发表于 2006-11-7 08:46:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-11-7 10:00:00 | 显示全部楼层

Re:函数什么要返回const bool?

...昨天偶头晕了,const直接赋值给非const只是copy const value而已,非常合法
估计可能是考虑到有compiler没有builtin bool,所以可能会有bool的class?
不过一般都是typedef int bool;这样的说..

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-11-7 10:28:00 | 显示全部楼层

Re:函数什么要返回const bool?

这种做法是没有任何意义的
唯一只是说明函数的作者在对const不完全理解的情况下写出的声明
这里不论是bool或任何类型,因为是值拷贝,不会影响到任何地方,所以const没有意义.
除非是返回const bool &
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 19:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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