Your error messages, taken together, indicate a signature mismatch between A::Action
and B::Action
, such that B::Action
does not become an overrider. The signatures must match perfectly (including cv-qualification of this
), except that return type covariance is allowed.
And B::Action
must be virtual
. It will be implicitly if the signature matches, unless it is a template. Templates can't override.
If you have a C++11 compiler, I suggest using the override
keyword, to make signature mismatch a compile error.