assert什么时候用?怎么用
答案:2 悬赏:30 手机版
解决时间 2021-03-05 20:33
- 提问者网友:温旧梦泪无声
- 2021-03-05 03:11
assert什么时候用?怎么用
最佳答案
- 五星知识达人网友:梦中风几里
- 2021-03-05 03:19
参数: classname CObject派生类的名字。pobject 类对象的指针。说明:这个宏断言指向的对象属于指定的类,或者属于从指定的类继承的类。pobject参数应该是指向一个对象的指针,可以是const类型的。指向的对象和类必须支持 CObject运行时类信息。作为一个例子,要确定pDocument是否是CMyDocument类或者它的任何派生类的对象的指针,你可以这么写:ASSERT_KINDOF(CMyDocument, pDocument)使用ASSERT_KINDOF宏的作用与下述代码完全相同:ASSERT(pobject->IsKindOf(RUNTIME_CLASS(classname)));这个函数仅对用DECLARE_DYNAMIC或DECLARE_SERIAL宏声明的类起作用。注意:这个函数仅在MFC的调试版本中才有。
全部回答
- 1楼网友:十鸦
- 2021-03-05 04:02
断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为true。如果表达式计算为false,那么系统会报告一个assertionerror。它用于调试目的:
assert(a>0);//throwsanassertionerrorifa<=0
断言可以有两种形式:
assertexpression1;
assertexpression1:expression2;
expression1应该总是产生一个布尔值。
expression2可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的string消息。
断言在默认情况下是禁用的。要在编译时启用断言,需要使用source1.4标记:
javac-source1.4test.java
要在运行时启用断言,可使用-enableassertions或者-ea标记。
要在运行时选择禁用断言,可使用-da或者-disableassertions标记。
要系统类中启用断言,可使用-esa或者-dsa标记。还可以在包的基础上启用或者禁用断言。
可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯