Así que estaba haciendo algunos ejercicios simples de C++ y noté una hazaña interesante. Reducido a un metal desnudo podría probar compilar el código siguiente:palabra clave "agradable" en C++?
class nice
{
public:
nice() {}
};
int main()
{
nice n;
return 0;
};
El resultado es un error de compilación que dice algo como esto:
<file>.cpp: In function ‘int main()’:
<file>.cpp:11: error: expected `;' before ‘n’
<file>.cpp:11: warning: statement is a reference, not call, to function ‘nice’
<file>.cpp:11: warning: statement has no effect
Y esto estaba usando g regulares ++ en Max OS X , algunos de mis amigos también han intentado con Ubuntu, obteniendo el mismo resultado.
La hazaña parece estar en la palabra "agradable", porque la refabricación nos permite compilar. Ahora, no puedo encontrar el "buen" en los listados de palabras clave para C++ o C, así que me preguntaba si alguien aquí tenía una idea.
También, poniendo
class nice n;
en lugar de
nice n;
corrige el problema.
P.S. Soy un novato relativo a C++ y procedo del mundo de ActionScript/.NET/Java/Python.
Actualización:
derecho, mi mal, yo también tenía un
#include <iostream>
en la parte superior, lo que parece ser la raíz del problema, ya que sin ella todo funciona muy bien.
La raíz del problema no es '#include', sino 'using namespace std'! –
James
@Autopulated: no creo que sea un namespace std, es un choque con el espacio de nombres global. está tirando en y está en conflicto con :: nice() –
Duck
Parece que es el espacio de nombres "estándar", como mucha gente ha dicho. Una vez que confirme eso, marque una de esas respuestas como "aceptada" (la marca de verificación verde) en lugar de una que no sea realmente una respuesta. – MatrixFrog