web-dev-qa-db-fra.com

Initialiseur attendu avant le nom de la fonction

#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)

J'essaie d'apprendre le C++. Mais quand j'essaye de compiler ce code avec GCC-4.4.5 en utilisant les options "g ++ -Wall -c", j'obtiens l'erreur suivante:

g ++ -Wall -c "lab2.cc" (dans le répertoire:/home/ion/Univer/Cpp)

lab2.cc:11: erreur: initialiseur attendu avant create
lab2.cc:20: erreur: conversion attendue du constructeur, du destructeur ou du type avant le str_compare
La compilation a échoué.

Les deux erreurs sont liées aux déclarations de fonction. (Le tour 11 est la déclaration de la fonction create, le tour 20 - de la fonction str_compare). J'ai essayé de google pour ce genre d'erreur, mais je n'ai pas pu trouver d'exemples d'erreurs similaires, car les messages d'erreur sont très génériques. Comment puis-je comprendre leur signification et comment les résoudre? Merci beaucoup pour votre attention.

10
Ion

Il manque un point-virgule à la fin de votre définition 'struct'.

Également,

*sotrudnik

doit être 

sotrudnik*
25
bmargulies

Essayez d’ajouter un point-virgule à la fin de votre structure:

 struct sotrudnik {
    string name;
    string speciality;
    string razread;
    int zarplata;
} //Semi colon here
0
Laura Doan