У меня есть функция-член, которая определяется следующим образом:
Value JSONDeserializer::ParseValue(TDR type, const json_string& valueString);
Когда я компилирую исходник, я получаю:
ошибка: дополнительная квалификация 'JSONDeserializer ::' для члена 'ParseValue'
Что это? Как мне удалить эту ошибку?
c++
g++
compiler-errors
prosseek
источник
источник
Это означает, что класс избыточно упоминается с функцией класса. Попробуйте удалить
JSONDeserializer::
источник
Вы положить эту строку внутри объявления класса? В этом случае вам следует удалить
JSONDeserializer::
.источник
Достойное замечание для удобочитаемости / ремонтопригодности:
Вы можете сохранить
JSONDeserializer::
квалификатор с определением в вашем файле реализации (* .cpp).Пока ваше объявление класса (как упоминалось другими) не имеет квалификатора, g ++ / gcc будет работать нормально.
Например:
В myFile.h:
И в myFile.cpp:
Когда myFile.cpp реализует методы из многих классов, это помогает узнать, кто кому принадлежит, просто взглянув на определение.
источник
JSONDeserializer::
для файла cpp (или определения в целом) не требуется. В противном случае вы получите неопределенную ссылку. coliru.stacked-crooked.com/a/8f8a0cd3f9db6c94 coliru.stacked-crooked.com/a/6cd1efe94c09d521