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 );
}