2

私の基本クラスにはこの機能があります

LRESULT CBaseClass::OnTestFunction(WPARAM id, LPARAM=0)
{
...
}

派生クラスがこの関数を呼び出すとき

OnTestFunction(nId);

エラー C2660 が表示されます:「関数は引数を 1 つ取りません」。

何故ですか ?

4

3 に答える 3

6

ヘッダー ファイルのクラス定義にデフォルト値を入れる必要があります。

class CBaseClass {
    ....
    LRESULT OnTestFunction(WPARAM id, LPARAM=0);
    ....
};
于 2010-12-16T12:47:57.617 に答える
4

デフォルト値は、クラス定義にある必要があります。

class CBaseClass {
    LRESULT OnTestFunction(WPARAM id, LPARAM=0);
};

派生クラスがその署名とデフォルト値を認識できるようにします。

于 2010-12-16T12:48:20.850 に答える
0

署名にパラメータの名前があってはいけませんか? お気に入り:

LRESULT CBaseClass::OnTestFunction(WPARAM id, LPARAM optional = 0)
{
   ...
}
于 2010-12-16T12:45:56.530 に答える