私は MFC C++ ポリモーフィズムに行き詰まっています。ここに私の問題があります:
私は多くの便利なものを実装するクラス、たとえば A を持っていますが、そこからインスタンス化する必要があるすべてのオブジェクトは少しカスタマイズする必要があるため、各クラスを派生させることにしました (ig: A1、A2... )。さて、これらのオブジェクトの初期化には、すべてのサブクラスで同じ操作が必要になるため、このタスクを実行する静的メソッドを作成しましたが、ここで問題が発生します。
void CFastInit::FastGrid( const CStatic &stPosition, A *pGrid, UINT nID, CWnd *pWnd )
{
stPosition.GetClientRect( rctGriPos );
stPosition.MapWindowPoints( pWnd, rctGriPos );
pGrid->Create( WS_CHILD | WS_VISIBLE, rctGriPos, pWnd, nID );
pGrid->SetWholeRowSel();
}
デバッガーから、pGrid が正しいタイプ ( A1, A2... ) であることがわかりますが、呼び出しは次のとおりです。
pGrid->Create(
A::Create に対して行われ、A1::Create または A2::Create に対してではありません。これに対する回避策はありますか?