更新 : 2007 年 11 月
MFC クラス宣言の // Overridables セクションには仮想関数が記述されます。仮想関数を派生クラスでオーバーライドすると、基本クラスの動作を変更できます。通常、仮想関数名は先頭に "On" が付きますが、付かない場合もあります。この部分に記述される関数はオーバーライドされることを前提にデザインされているため、場合によっては "コールバック" または "フック" を行う処理が記述されています。通常、これらの関数は protected です。
MFC 内部では、純粋仮想関数はすべてこの部分に記述されます。C++ の純粋仮想関数は次の形式を持っています。
virtual void OnDraw( ) = 0;
「コメントの例」で引用されている CStdioFile クラスのリストには // overridables セクションはありません。これに対して、CDocument クラスには約 10 種類の関数がこの部分に記述されています。
クラスによっては // Advanced Overridables セクションを持つ場合もあります。この部分の関数は、上級プログラマ以外はオーバーライドしないでください。通常は、これらの関数のオーバーライドは不要です。
![]() |
---|
ここで説明した記法は、通常、オートメーション (旧 OLE オートメーション) のメソッドとプロパティの記述に対しても適用されます。オートメーション メソッドは MFC の関数に似ています。"オートメーション" プロパティは MFC の属性に似ています。ActiveX コントロール (旧 OLE コントロール) 用のオートメーション イベントは、MFC のオーバーライド可能なメンバ関数に似ています。 |