2011-04-15 16 views
8
#include <iostream> 
#include <string> 

using namespace std; 

struct sotrudnik { 
    string name; 
    string speciality; 
    string razread; 
    int zarplata; 
} 

sotrudnik create(string n,string spec,string raz,int sal) { 
    sotrudnik temp; 
    temp.name=n; 
    temp.speciality=spec; 
    temp.razread=raz; 
    temp.zarplata=sal; 
    return temp; 
} 
*sotrudnik str_compare (string str1, string str2, sotrudnik sot1, sotrudnik sot2) 

Intento aprender C++. Pero cuando intento compilar este código con GCC-4.4.5 mediante el uso de las opciones "g ++ -Wall -c", me sale el siguiente error:inicializador esperado antes del nombre de la función

g++ -Wall -c "lab2.cc" (in directory: /home/ion/Univer/Cpp)

lab2.cc:11: error: expected initializer before create
lab2.cc:20: error: expected constructor, destructor, or type conversion before str_compare
Compilation failed.

Ambos errores están ligados a las declaraciones de funciones. (la vuelta 11 es la declaración de creación de función, ronda 20 - de la función str_compare). Intenté buscar este tipo de errores en google, pero no pude encontrar ejemplos de errores similares, ya que los mensajes de error son muy genéricos. ¿Cómo puedo entender su significado y cómo resolverlos? Muchas gracias por su atención.

Respuesta

22

Falta un punto y coma al final de su definición de 'estructura'.

Además,

*sotrudnik 

necesidades sean

sotrudnik* 
+0

Muchas gracias, me perdí. De todos modos, el segundo error sigue siendo el mismo. ¿Es porque devuelve un puntero al tipo de estructura que creé? – Ion

+2

parece que este tipo de error ocurre cuando falta el punto y coma, como misterioso C++. –

0

trate de añadir un punto y coma al final de su estructura:

struct sotrudnik { 
    string name; 
    string speciality; 
    string razread; 
    int zarplata; 
} //Semi colon here 
+2

Quizás sería mejor sugerir una edición a la respuesta original. – qxz

Cuestiones relacionadas