'function' : 'specifier' storage-class specifier illegal on function definition
The given specifier is not allowed on a function definition appearing outside of a class declaration. The virtual specifier can only be specified on a member function declaration appearing within the class declaration.
The following is an example of this error:
struct X
{
virtual void f();
virtual void g();
};
virtual void X::f() {} // error, virtual specifier
void X::g() {} // OK