Reputation: 1965
My base class has this function
LRESULT CBaseClass::OnTestFunction(WPARAM id, LPARAM=0)
{
...
}
When the derived class calls this function
OnTestFunction(nId);
I get an error C2660 : "function does not take 1 arguments".
Why is that ?
Upvotes: 2
Views: 6937
Reputation: 170539
The default value should be in the class definition:
class CBaseClass {
LRESULT OnTestFunction(WPARAM id, LPARAM=0);
};
so that the derived class can see that signature and the default value.
Upvotes: 4
Reputation: 1112
You need to put the default value in the class definition in the header file.
class CBaseClass {
....
LRESULT OnTestFunction(WPARAM id, LPARAM=0);
....
};
Upvotes: 6
Reputation: 381
Shouldn't be there a name of the parameter in the signature? Like:
LRESULT CBaseClass::OnTestFunction(WPARAM id, LPARAM optional = 0)
{
...
}
Upvotes: 0