AssertValid函数是用来判断表达式的合法性或正确性,如果不正确或不合法则终止程序并返回相应的提示信息 如AssertValid(t==0);//用来判断t是否等于0,如果t!=0则终止程序
Dump函数一般用来显示debug信息的,其函数中的内容一般在debug时,在debug窗口中才能看到。

1、CDocument::AssertValid()和CDocument::Dump(dc)这2个 成员函数 是用在debug调试用的,编写程序时可以不要管他。

2、AssertValid( )通过检查对象的内部状态执行对象的有效性检查。在Debug版本下,AssertValid( )可以断言并中止程序,同时给出断言失败发生的位置,包括文件名和行号。(在程序运行时检查对象的正确性)

Dump( )函数也用来检查,但是需要有你自己的继承类,继承类要重载Dump( ),重载首先调用其基类的Dump函数,随后可以打印一些继承类的数据成员。如果你的类使用IMPLEMENT_DYNAMIC或者IMPLEMENT_SERIAL宏,CObject::Dump( )会打印类名。

AssertValid( )主要是通过定义自己的规则,如一些表达式,来判断对象的有效性,Dump( )主要提供一些debug信息。

3、Dump函数用来按指定的格式输出一个对象的成员变量,来帮助你诊断一个对象的内部情况。与AssertValid成员函数一样,Dump也是Cobject类的成员函数。Dump函数的参数是一个CdumpContext对象,你可以象利用流一样往向这个对象中输入数据。当你创建一个Cobject继承而来的新类时,你可以按如下步骤重载你自己的Dump函数
(1)调用基类的Dump函数,以输出基类的内容;
(2)向Cdumpcontest对象输出该类的数据.
例如,典型的Dump函数定义如下:

#ifdef _DEBUG
void CPerson::Dump( CDumpContext& dc ) const
{
// call base class function first
CObject::Dump( dc );

// now do the stuff for our specific class
dc << "last name: " << m_lastName << "\n"
<< "first name: " << m_firstName << "\n";
}
#endif
你可能已经注意到整个函数的定义都包含在#ifdef _DEBUG 和#endif中,这使得Dump成员函数只在DEBUG版本中发生作用,而对RELEASE版本不发生作用。

4、ASSERT_VALID宏用来在运行时检查一个对象的内部合法性,比如说现在有一个学生对象,我们知道每个学生的年龄一定大于零,若年龄小于零,则该学生对象肯定有问题。事实上,ASSERT_VALID宏就是转化为对象的成员函数AssertValid()的调用,只是这种方法更安全。它的参数是一个对象指针,通过这个指针来调用它的AssertValid()成员函数。
与此相配套,每当我们创建从Cobject类继承而来的一个新的类时,我们可以重载该成员函数,以执行特定的合法性检查。

AssertValid和Dump相关推荐

  1. AssertValid和Dump函数的应用

    原文地址: http://tsitao.blog.163.com/blog/static/29795822006914105840496/#comment=fks_082074086083084067 ...

  2. MFC中的AssertValid和Dump函数

    本文转载自:VC调试中,AssertValid和Dump函数的应用 -----------------------------------------AssertValid()函数---------- ...

  3. VC的调试中,AssertValid和Dump函数的应用

    VC的调试中,AssertValid和Dump函数的应用 2006-10-14 22:58:40|  分类: MFC|字号 订阅 CObject::AssertValid 成员函数提供对对象内部状态的 ...

  4. VC的调试中,AssertValid和Dump函数的应用(转载)

    VC的调试中,AssertValid和Dump函数的应用?? 楼主mei2004mei2004(aaa)2005-12-02 09:47:24 在 VC/MFC / 基础类 提问 rt.     在d ...

  5. VC的调试中,AssertValid和Dump函数的应用(转)

    VC的调试中,AssertValid和Dump函数的应用(转) 标签: 我记录 我的校园 学习公社 分类: Technic 概括的讲,AssertValid函数是用来判断表达式的合法性或正确性,如果不 ...

  6. AssertValid()与Dump()函数

    1.CDocument::AssertValid()和CDocument::Dump(dc) 这2个 成员函数 是用在debug调试用的,编写程序时可以不要管他. 2.AssertValid( )通过 ...

  7. VC中,AssertValid和Dump函数

    转自http://tsitao.blog.163.com/blog/static/29795822006914105840496/ CObject::AssertValid 成员函数提供对对象内部状态 ...

  8. VC++的AssertValid和Dump函数的应用详解

    CObject::AssertValid   成员函数提供对对象内部状态的运行时检查.尽管从CObject派生类时不需要重写 AssertValid,但可以通过重写使您的类更安全可靠.AssertVa ...

  9. AssertValid和Dump 这两个函数的作用

    AssertValid函数是用来判断表达式的合法性或正确性,如果不正确或不合法则终止程序并返回相应的提示信息     如AssertValid(t==0);//用来判断t是否等于0,如果t!=0则终止 ...

最新文章

  1. Java开发面试问题,牛逼轰轰!
  2. SD-WAN技术分析—Vecloud
  3. java集合——遗留的集合
  4. 我给Apache顶级项目提了个Bug
  5. react native bundle读取assets_react-native-easy-app 详解与使用之 (一)AsyncStorage
  6. 黯然推荐:王江民先生悼文(文言)
  7. 博弈论(二)完全信息静态博弈
  8. Git学习总结(1)——简介与基本操作
  9. Flowable Modeler
  10. python爬虫爬取《战狼Ⅱ》影评
  11. DS18B20数字温度计使用(转)
  12. 洛夏墨迹测验(Rorschach Inkblot Test)
  13. 线性方法求欧拉数-POJ2478
  14. 大型3d射击类游戏源码【突击风暴】,中文版本,可私服
  15. laravel5.4中orm中的wherein与多条件查询
  16. Keysight的扫描电子元件软件EP-Scan 2023版本下载与安装配置教程
  17. 十大最赚钱增值业务排行榜
  18. 安检机出彩色图及三点一线校准问题
  19. JAVA-IDEA报错:Error:Cannot run program “C:\Program Files\Java\jdk1.8.0_20\bin\java.exe“
  20. 第十一届蓝桥杯——解码

热门文章

  1. 关于前端Retina 屏幕兼容和基于Retina 屏幕兼容的雪碧图技巧
  2. 用C语言编写纸牌游戏(数据结构)
  3. Maven依赖之热部署devtools
  4. redis的冷热数据处理
  5. 电子地图与纸张地图的比较
  6. java程序设计全部课后习题答案_javase程序设计课后题答案
  7. Planning Dynamically Feasible Trajectories for Quadrotors Using Safe Flight Corridors in 3-D Complex
  8. 电脑linux查询配置参数,linux,windows keepalive参数的查看与设置
  9. RobotGPT:机器人需要从“功能机”向“智能机”升级
  10. echarts 梯形柱状图