释义 |
CObject::AssertValid
virtual void AssertValid( ) const;
说明: AssertValid通过检测内部状态,对对象进行有效性检查。在库的调试版本中,AssertValid将产生断言,发出消息,列出断言失败的行数和文件名并终止程序。 当你编写了自己的类后,应当调用覆盖AssertValid函数,来为你自己和使用你的类的用户提供诊断服务。被覆盖的AssertValid在检测对应于派生类的数据成员之前,通常调用它的基类的AssertValid函数。 由于AssertValid为一个常量函数,那么在测试期间,不允许改变对象的状态。自己派生类的AssertValid函数不应当产生异常,而应当断言是否检测到无效的对象数据。 “有效性”的诊断依赖于对象的类。作为规则,函数应当执行“浅度检测”(“shallow check”),也就是说,如果一个对象包含了其它对象的指针,那么它应当进行检测,以查看指针是否为空,而不是对指针指向的对象进行有效性测试。
示例:请参阅CObList::CObList,了解所有CObject示例中使用的CAge类。 // example for CObject::AssertValid void CAge::AssertValid() const { CObject::AssertValid(); ASSERT( m_years > 0 ); ASSERT( m_years < 105 ); } |