CObject::Dump
更新 : 2007 年 11 月
オブジェクトの内容を CDumpContext オブジェクトにダンプします。
virtual void Dump(
CDumpContext& dc
) const;
パラメータ
- dc
ダンプ用の診断ダンプ コンテキスト。通常は、afxDump です。
解説
独自のクラスを作成するとき、診断サービスを用意するために Dump 関数をオーバーライドします。オーバーライドした Dump 関数では、通常派生クラス独自のデータ メンバを出力する前に、基本クラスの Dump 関数を呼び出します。CObject::Dump 関数でクラス名を出力するには、派生クラスで IMPLEMENT_DYNAMIC マクロまたは IMPLEMENT_SERIAL マクロを使用します。
メモ : |
---|
オーバーライドした Dump 関数で、出力の最後に改行を出力する必要はありません。 |
Dump 関数の呼び出しは、MFC ライブラリのデバッグ環境でのみ可能です。関数の宣言や実装は、条件付きコンパイルの #ifdef _DEBUG/#endif ステートメントで囲んで呼び出します。
Dump 関数は const 関数なので、ダンプ中にオブジェクトの状態は変更できません。
CDumpContext::operator << は、CObject ポインタが出力されるとき、Dump 関数を呼び出します。
"サイクリックでない" オブジェクトのダンプだけが可能です。たとえば、オブジェクトのリストはダンプできますが、そのオブジェクトの 1 つがリスト自体を指しているときは、スタック オーバーフローを引き起こします。
使用例
すべての CObject の例で使われている CAge クラスのリストについては、「CObList::CObList」を参照してください。
void CAge::Dump(CDumpContext &dc) const
{
CObject::Dump(dc);
dc << _T("Age = ") << m_years;
}
必要条件
ヘッダー : afx.h