2011-04-28 2 views
0

У меня возникла проблема с получением отдельной компиляции. Это просто, но я не могу понять эту ошибку.Спецификация класса C++, проблема с реализацией

Я получаю эти исключения:

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

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

+0

ТАКЖЕ: Я получал те же ошибки без операторов разрешения области видимости в заголовке. – William

+0

Почему у вашего конструктора нет типов данных? Employee :: Employee (std :: string n, int id) – Genzume

ответ

4

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

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

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

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

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

+0

Это позаботилось об этом. Но теперь компилятор жалуется на то, что мои аксессоры/мутаторы не найдены ... – William

+0

Поскольку это домашнее задание и через час я просто возьму то, что у меня есть. Я работаю, просто присваивая эти переменные этим параметрам. Позже я выясню геттеры и сеттеры. Спасибо за вашу помощь. – William

+0

Неопределенные ссылки? Что именно компилятор говорит? Это забавно, но после долгих лет работы с компиляторами вы понимаете их сообщения об ошибках намного лучше, чем люди, которые пытаются его описать. Хехе –

Смежные вопросы