我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:大家发高手网 > 断言 >

assert(this)是什么意思

归档日期:07-20       文本归类:断言      文章编辑:爱尚语录

  assert(this)是C++里面对this指针的断言,断言assert 是仅在Debug 版本起作用的宏,它用于检查“不应该”发生的情况。断言的作用是防止程序执行时出现异常导致不应该的情况发生,assert(this)就是对this指针进行断言,判断this指针指向的内容是否为空(NULL),若果为NULL,程序就会中止,一般地还会出现提示对话,说明在什么地方引发了assert

  但实际上, c++标准里面, 禁止对空指针解引用 (行为未定义), 因此以NULL为对象指针的调用实际是行为未定义, 而非很多人所以为的只要判断了this是否为空, 就可以安全处理--尽管在多数场景下的确如此. 实际上, 在一些复杂的继承关系出现时. 的确这里可能会有潜伏的错误.

  所以从C++的语言本身来说assert(this)没有任意意义, 而这点通常不为大多数人所知.

本文链接:http://buffaloruse.net/duanyan/857.html