Define static method in source-file with declaration in header-file in C++
Keywords static
and virtual
should not be repeated in the definition. They should only be used in the class declaration.
Remove static
keyword in method definition. Keep it just in your class definition.
static
keyword placed in .cpp file means that a certain function has a static linkage, ie. it is accessible only from other functions in the same file.