Eu tenho uma função de membro que é definida da seguinte maneira:
Value JSONDeserializer::ParseValue(TDR type, const json_string& valueString);
Quando compilo o código-fonte, obtenho:
erro: qualificação extra 'JSONDeserializer ::' no membro 'ParseValue'
O que é isso? Como faço para remover esse erro?
c++
g++
compiler-errors
prosseek
fonte
fonte
Isso significa que uma classe é mencionada redundantemente com uma função de classe. Tente remover
JSONDeserializer::
fonte
Você está colocando esta linha dentro da declaração da classe? Nesse caso, você deve remover o
JSONDeserializer::
.fonte
Uma nota importante para legibilidade / manutenção:
Você pode manter o
JSONDeserializer::
qualificador com a definição em seu arquivo de implementação (* .cpp).Contanto que sua declaração em classe (como mencionado por outros) não tenha o qualificador, g ++ / gcc funcionará bem.
Por exemplo:
In myFile.h:
E em myFile.cpp:
Quando myFile.cpp implementa métodos de muitas classes, ajuda a saber quem pertence a quem, apenas olhando para a definição.
fonte
JSONDeserializer::
para o arquivo cpp (ou a definição em geral) é necessária. Caso contrário, você obtém uma referência indefinida. coliru.stacked-crooked.com/a/8f8a0cd3f9db6c94 coliru.stacked-crooked.com/a/6cd1efe94c09d521