私の基本クラスにはこの機能があります
LRESULT CBaseClass::OnTestFunction(WPARAM id, LPARAM=0)
{
...
}
派生クラスがこの関数を呼び出すとき
OnTestFunction(nId);
エラー C2660 が表示されます:「関数は引数を 1 つ取りません」。
何故ですか ?
私の基本クラスにはこの機能があります
LRESULT CBaseClass::OnTestFunction(WPARAM id, LPARAM=0)
{
...
}
派生クラスがこの関数を呼び出すとき
OnTestFunction(nId);
エラー C2660 が表示されます:「関数は引数を 1 つ取りません」。
何故ですか ?
ヘッダー ファイルのクラス定義にデフォルト値を入れる必要があります。
class CBaseClass {
....
LRESULT OnTestFunction(WPARAM id, LPARAM=0);
....
};
デフォルト値は、クラス定義にある必要があります。
class CBaseClass {
LRESULT OnTestFunction(WPARAM id, LPARAM=0);
};
派生クラスがその署名とデフォルト値を認識できるようにします。
署名にパラメータの名前があってはいけませんか? お気に入り:
LRESULT CBaseClass::OnTestFunction(WPARAM id, LPARAM optional = 0)
{
...
}