2013-12-24 5 views
1

Я работаю с кучей классов с составом и я получаю эту ошибку (ожидался идентификатор), когда я пытаюсь реализовать конструктор, вот класс заголовок:Ошибка при конструкторе: ожидается идентификатор?

#ifndef STUDENT_H_ 
#define STUDENT_H_ 

#include "University.h" 
class Student { 
public: 
    Student(); // constructor 
    friend ostream & operator<<(ostream &, Student &); // print the student data 
    friend istream & operator>>(istream &, Student &); // to read student data 
private: 
    const int id; 
    string name; 
    int marks[5]; 
    Date admissionDate; // Composition 
    University university; // Composition 
}; 

#endif 

, что мне нужно сделать, чтобы решить эту ошибку?

вот касты, но я до сих пор не реализовал другую Io функцию, потому что я хочу, чтобы решить эту ошибку первой ..

#include "Student.h" 
Student::Student(){} 
ostream & operator<<(ostream &, Student &){} 
istream & operator>>(istream &, Student &){} 
+2

Опубликовать свою реализацию, то есть файл 'cpp'. –

+0

Я думаю, вы должны показать свою попытку реализовать конструктор. – clcto

+0

Требуется ли каждому студенту экземпляр объекта университета? Не хватит ли ссылки? Я предполагаю, что «Университет» проводит студентов, что может быть причиной дополнительных ошибок. – StoryTeller

ответ

1

Так как a Student имеет член const int id, его необходимо инициализировать в списке инициализации конструктора . Например:

Student::Student() : id(0) 
{ } 
+0

Yeap, что это было, я полностью забыл об этом, спасибо, тонны человека: D –

3

Вашего конструктор должен быть определен следующим образом

Student::Student() { /* some code */ } 
+0

@Matteo Italia, Grazia, Lei e molto cortese. :) –

+0

Но конструктор, предоставленный в заголовке, пуст, я думаю, что он имеет какое-то отношение к списку инициализаторов thingy, но что мне нужно для инициализации? –

+0

@ Vlad: Non c'è di che, всегда рад улучшить форматирование :-) –

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