Спецификация класса C ++, проблема реализации - PullRequest
0 голосов
/ 29 апреля 2011

У меня проблемы с получением какой-то отдельной компиляции.Это просто, но я не могу понять эту ошибку.

Я получаю следующие исключения:

> 36 C:\Cpp\P6\employee.cpp expected `)' before ',' token 36
> C:\Cpp\P6\employee.cpp expectedinit-declarator before ')' token  36
> C:\Cpp\P6\employee.cpp expected `,' or `;' before ')' token  42
> C:\Cpp\P6\employee.cpp expected `)' before ',' token  42
> C:\Cpp\P6\employee.cpp expected init-declarator before ')' token  42
> C:\Cpp\P6\employee.cpp expected `,' or `;' before ')' token

для этого кода:

    /*line 36*/ Employee::Employee(n, id) { //constructor for name and ID

                            setName(n);
                            setID(id);
    };

   /*line 42*/ Employee::Employee(id, d, p, n) {//constructor for all member variables

                        setID(id);
                        setDept(d);
                        setPos(p);
                        setName(n);
    };

заголовокфайл выглядит (они общедоступны):

         Employee::Employee();
         Employee::Employee(std::string, int);
         Employee::Employee(int, std::string, std::string, std::string);

Любая помощь в том, что означают эти ошибки или как я могу их исправить?

1 Ответ

4 голосов
/ 29 апреля 2011

У вас всегда должен быть тип, предшествующий имени переменной.У вас есть это в декларации, но не в определении.Что-то вроде следующего должно исправить это:

Employee::Employee(std::string n, int id) { //constructor for name and ID

                            setName(n);
                            setID(id);
    };

То же самое относится ко второму определению конструктора Employee.

Кроме того, лучше передать std::string по постоянной ссылке, а незначение.И ... ваш аватар повернут на 45 градусов влево.

...