У моего базового класса есть эта функция
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) { ... }