ASSERT_VALID(pDoc)分析

ASSERT_VALID(pDoc)分析这个宏都是MFC的调试宏.ASSERT_VALID宏用来在运行时检查一个对象的内部合法性,比如说现在有一个学生对象,我们知道每个学生的年龄一定大于零,若年龄小于零,则该学生对象肯定有问题。事实上,

大家好,又见面了,我是你们的朋友全栈君。

这个宏都是MFC的调试宏.

ASSERT_VALID宏用来在运行时检查一个对象的内部合法性,比如说现在有一个学生对象,我们知道每个学生的年龄一定大于零,若年龄小于零,则该学生对象肯定有问题。

 

事实上,ASSERT_VALID宏就是转化为对象的成员函数AssertValid()的调用,只是这种方法更安全。它的参数是一个对象指针,通过这个指针来调用它的AssertValid()成员函数。

与此相配套,每当我们创建从Cobject类继承而来的一个新的类时,我们可以重载该成员函数,以执行特定的合法性检查

ASSERT_VALID强制调用参数对象(必须是CObject或CObject*)的AssertValid函数,该函数实现对象的内部一致性检查,当你创建一个可重用类时,应该重载这个函数(VC中缺省已经重载了该函数),你可以在该函数中进行必要的检查工作.
ASSERT宏用于确保参数内的表达式正确,如果表达式为false,则会显示一个消息对话框,其中有源文件的名字和当前行号,用户可以选择中断程序或进行调试.这个宏通常用于校验参数和返回值.
以上两个宏均只在Debug版本中有效,与ASSERT相对应的是VERIFY.VERIFY宏在Debug版本中与ASSERT相同,在Release版本中仅执行参数表达式,不进行校验.

ASSERT 和 ASSERT_VALID
都是用于Debug的,当括号中的表达式为FALSE时,会弹出对话框通知,
你可以自己加上一句ASSERT(FALSE),看看执行时有什么东东。

ASSERT_VALID用于对C++对象或指针进行有效性判断,如果出错,结果和ASSERT一样。

注意:二者都只能在MFC工程里用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155640.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java实现时间动态显示方法汇总

    这篇文章主要介绍了Java实现时间动态显示方法汇总,很实用的功能,需要的朋友可以参考下本文所述实例可以实现Java在界面上动态的显示时间。具体实现方法汇总如下:1.方法一用TimerTask:

    2021年12月27日
    42
  • python中的int函数_python int()

    python中的int函数_python int()python中Int8Int16Int32Int64floatuint8Int8,占1个字节.Int16,占2个字节.Int32,占4个字节.Int64,占8个字节.float类型取值范围:-1到1或者0到1uint8类型取值范围:0到255(通常用于RGB图像中)#转换img.astype(‘uint8’)…

    2022年8月15日
    8
  • HTTP header location 重定向 URL

    HTTP header location 重定向 URLhttp头信息头信息的作用很多,最主要的有下面几个:1、跳转当浏览器接受到头信息中的Location:xxxx后,就会自动跳转到xxxx指向的URL地址,这点有点类似用js写跳转。但是

    2022年7月2日
    31
  • mybatis log 激活码(注册激活)

    (mybatis log 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月27日
    628
  • 【tensorflow】MTCNN网络基本函数bbox_ohem&landmark_ohem()

    【tensorflow】MTCNN网络基本函数bbox_ohem&landmark_ohem()tf.gather:用一个一维的索引数组,将张量中对应索引的向量提取出来importtensorflowastfimportnumpyasnpa=tf.constant([1,2,3,4])b=tf.square(a)withtf.Session()assess:print(“b:%s”%sess.run(b))#b:[14916]…

    2022年5月29日
    43
  • visualSFM「建议收藏」

    visualSFM「建议收藏」visualSFM:http://ccwu.me/vsfm/ (Avisualstructurefrommotionsysytem)     visualSFM是一个使用SFM方法(structurefrommotion)用于3D重建的GUI应用,这个重建系统融合了ChangchangWu的先前的几个工程:SIFTonGPU(SiftGPU), Multic

    2022年6月20日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号