游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8133|回复: 22

if (this == NULL) 这样的语句有什么用吗?

[复制链接]

7

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2006-4-17 11:01:00 | 显示全部楼层 |阅读模式
void xnAction::SetAction(char * actionName)
{
        if (this == NULL) //???????? !!!!!!!???????
                return;
      ...


这是一个引擎的代码

if (this == NULL)
请问有什么用

33

主题

544

帖子

554

积分

高级会员

Rank: 4

积分
554
发表于 2006-4-17 11:30:00 | 显示全部楼层

Re:if (this == NULL) 这样的语句有什么用吗?

用来保证该对象已经被初始化~
如果这个对象没有初始化,或者已经被删除
那么调用这个方法就会自动返回了~~

23

主题

515

帖子

552

积分

高级会员

Rank: 4

积分
552
发表于 2006-4-17 14:34:00 | 显示全部楼层

Re:if (this == NULL) 这样的语句有什么用吗?

这一行代码让人感觉这个引擎好邋遢!!!

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-4-17 14:46:00 | 显示全部楼层

Re:if (this == NULL) 这样的语句有什么用吗?

如果这个函数没有被 inline ,那基本上不会起到任何作用。

23

主题

515

帖子

552

积分

高级会员

Rank: 4

积分
552
发表于 2006-4-17 15:23:00 | 显示全部楼层

Re:if (this == NULL) 这样的语句有什么用吗?

当然会起作用,只不过这种写法等于让自己判断自己是否初始化。
感觉不太舒服,按照自己判断自己的思想,那么每个成员函数第一行都需要这种东西,
虽然防止空指针,但是手段确实不怎么高明……

10

主题

62

帖子

68

积分

注册会员

Rank: 2

积分
68
发表于 2006-4-17 16:32:00 | 显示全部楼层

Re:if (this == NULL) 这样的语句有什么用吗?

如果实在不放心的话
这种情况下用断言检查空指针比较好

54

主题

2916

帖子

3765

积分

论坛元老

Rank: 8Rank: 8

积分
3765
QQ
发表于 2006-4-17 19:56:00 | 显示全部楼层

Re: if (this == NULL) 这样的语句有什么用吗?

lmjgood: if (this == NULL) 这样的语句有什么用吗?

if (this == NULL)



这种写法挺新鲜,我可不打算这么用。 [em11]

6

主题

29

帖子

29

积分

注册会员

Rank: 2

积分
29
发表于 2006-4-18 00:06:00 | 显示全部楼层

Re:if (this == NULL) 这样的语句有什么用吗?

楼上的是不是打算这样子用。。。 if (NULL == this)

16

主题

160

帖子

176

积分

注册会员

Rank: 2

积分
176
QQ
发表于 2006-4-18 09:23:00 | 显示全部楼层

Re:if (this == NULL) 这样的语句有什么用吗?

错,应该是:
if(!this)
-_-

97

主题

590

帖子

590

积分

高级会员

Rank: 4

积分
590
QQ
发表于 2006-4-18 12:21:00 | 显示全部楼层

Re:if (this == NULL) 这样的语句有什么用吗?

要是this 指针真的空了,那还怎么调用这个对象的成员函数SetAction
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 14:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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