Tengo una función miembro que se define de la siguiente manera:
Value JSONDeserializer::ParseValue(TDR type, const json_string& valueString);
Cuando compilo la fuente, obtengo:
error: calificación adicional 'JSONDeserializer ::' en el miembro 'ParseValue'
¿Que es esto? ¿Cómo elimino este error?
c++
g++
compiler-errors
prosseek
fuente
fuente
Esto significa que una clase se menciona de forma redundante con una función de clase. Intenta eliminar
JSONDeserializer::
fuente
¿Estás poniendo esta línea dentro de la declaración de clase? En ese caso, debe eliminar el
JSONDeserializer::
.fuente
Una nota digna de legibilidad / mantenibilidad:
Puede mantener el
JSONDeserializer::
calificador con la definición en su archivo de implementación (* .cpp).Siempre que su declaración de clase (como lo mencionaron otros) no tenga el calificador, g ++ / gcc funcionará bien.
Por ejemplo:
En myFile.h:
Y en myFile.cpp:
Cuando myFile.cpp implementa métodos de muchas clases, ayuda saber quién pertenece a quién, con solo mirar la definición.
fuente
JSONDeserializer::
para el archivo cpp (o la definición en general) es necesario. De lo contrario, obtienes una referencia indefinida. coliru.stacked-crooked.com/a/8f8a0cd3f9db6c94 coliru.stacked-crooked.com/a/6cd1efe94c09d521