У меня есть определение класса с виртуальным методом.
При компиляции появляется ошибка, что 'MethodType Class::Method'
не является статическим членом класса Class
Самое популярное решение, которое я нашел, - добавить ключевое слово static в определение метода в заголовочном файле.
Однако метод определен как virtual . Поэтому для добавления ключевого слова static мне придется удалить ключевое слово virtual . К сожалению, этого нельзя сделать, поскольку класс наследует от родителя, где этот метод также объявлен virtual , что приводит к другой ошибке компилятора. (Обратите внимание, я использую определенные интерфейсы и не имею доступа к исходному коду родительского класса)
У кого-нибудь есть идеи?
Заголовочный файл:
class X : public OtherClass
{
public:
X();
~X();
virtual structType MethodName(ParamType1,ParamType2);
};
Тогда в файле CPP у меня есть:
structType * X::MethodName(ParamType1 P1, ParamType2 P2)
{
//Implementation here
}
И это помечается ошибкой:
'structType* X::MethodName' is not a static member of 'class X'