次の方法で共有


CObject::AssertValid

更新 : 2007 年 11 月

オブジェクトの整合性を評価します。

virtual void AssertValid( ) const;

解説

オブジェクト内部の状態をチェックすることで、オブジェクトの有効性をチェックします。AssertValid 関数は、ライブラリのデバッグ環境でアサートできます。この関数は、アサーションに失敗したファイル名と行番号をメッセージ出力し、プログラムを終了します。

独自のクラスを作成するとき、診断サービスを用意するために AssertValid 関数をオーバーライドします。オーバーライドした AssertValid 関数では、通常派生クラス独自のデータ メンバをチェックする前に、基本クラスの AssertValid 関数を呼び出します。

AssertValid 関数は const 関数なので、テストの間にオブジェクトの状態の変更はできません。派生クラスの AssertValid 関数では、不正なオブジェクト データを検出したときに、例外をスローするのではなく、アサートするようにします。

"有効性" の定義は、オブジェクトのクラスに依存しています。一般に、関数では "簡単なチェック" を行うようにします。つまり、オブジェクトがほかのオブジェクトへのポインタを持っているとき、ポインタが null でないことを調べる程度で、ポインタが参照しているオブジェクトの有効性はチェックしません。

使用例

すべての CObject の例で使われている CAge クラスのリストについては、「CObList::CObList」を参照してください。

void CAge::AssertValid() const
{
   CObject::AssertValid();
   ASSERT(m_years > 0); 
   ASSERT(m_years < 105);
}

別の例については、「AfxDoForAllObjects」を参照してください。

必要条件

ヘッダー : afx.h

参照

参照

CObject クラス

階層図

その他の技術情報

CObject のメンバ