Ожидаемый инициализатор перед именем функции - PullRequest
12 голосов
/ 15 апреля 2011
#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)

Я пытаюсь выучить C ++.Но когда я пытаюсь скомпилировать этот код с помощью GCC-4.4.5 с использованием параметров "g ++ -Wall -c", я получаю следующую ошибку:

g ++ -Wall -c "lab2.cc"(в каталоге: / home / ion / Univer / Cpp)

lab2.cc: 11: ошибка: ожидаемый инициализатор до createlab2.cc:20: ошибка: ожидаемый конструктор, деструктор или преобразование типов до str_compareСбой компиляции.

Обе ошибки связаны с объявлениями функций.(раунд 11 - объявление функции create, раунд 20 - функции str_compare).Попытка поиска ошибок такого рода в Google, но не удалось найти примеры подобных ошибок, так как сообщения об ошибках очень общие.Как я могу понять их значение и как их решить?Большое спасибо за ваше внимание.

Ответы [ 2 ]

27 голосов
/ 15 апреля 2011

Вам не хватает точки с запятой в конце определения 'struct'.

Кроме того,

*sotrudnik

должно быть

sotrudnik*
0 голосов
/ 30 ноября 2016

Попробуйте добавить точку с запятой в конец вашей структуры:

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