ドキュメントのデータはドキュメント クラスのメンバー変数として実装します。 たとえば Scribble プログラムでは、CObject オブジェクトへのポインターを格納するリンク リストである CObList 型のデータ メンバーを宣言します。 このリストには、手描きの線を構成する点の配列が格納されます。
ドキュメントのメンバー データを実装する方法は、アプリケーションによって異なります。 MFC では、プログラマを支援するために、C++ テンプレートに基づいたコレクションを始めとする配列、リスト、マップ (ディクショナリ) などの一連の "コレクション クラス" に加えて、CString、CRect、CPoint、CSize、CTime などの一般的なデータ型をカプセル化したクラスも用意しています。 これらのクラスの詳細については、『MFC リファレンス』の「クラス ライブラリの概要」を参照してください。
通常、ドキュメントのメンバー データを定義するときは、ドキュメント クラスにメンバー関数を追加します。この作業を通じてデータ項目の設定と取得を行い、取得した項目に対して、ほかの有効な処理を実行します。
ビューがドキュメント オブジェクトにアクセスするときは、ビューの作成時に組み込まれる、ドキュメントへのポインターを使用します。 このポインターをビューのメンバー関数内で取得するには、CView メンバー関数の GetDocument を呼び出します。 取得したポインターは、必ず独自のドキュメント タイプにキャストしてください。 キャストしたポインターを通じて、パブリック ドキュメント メンバーにアクセスできます。
データ転送を頻繁に行うためにドキュメントに直接アクセスする必要があるとき、またはドキュメント クラスのパブリックでないメンバーを使う必要があるときは、ビュー クラスをドキュメント クラスのフレンド クラス (C++ の用語) にしてください。