Ich habe einige Stunden damit verbracht zu recherchieren und herauszufinden, warum ich diesen Fehler bekomme. Im Wesentlichen sind die drei Dateien, die mit dem Erben zu tun haben, CollegeMember.h, Employee.h und EmpAcademicRecord.h. Mitarbeiter. Erbt von CollegeMember.h und EmpAcademicRecord.h erbt von Employee.h. Wie dieses CollegeMember < - Employee < - EmpAcademicRecord. Der Fehler tritt in EmpacademicRecord.h auf. Hier sind die drei Dateien.erwarteter Klassenname vor '{' Token. C++ Vererbung
CollegeMember.h
#include <cstdlib>
#include <iostream>
#include<ctype.h>
#include<string.h>
#include "Employee.h"
#include "Student.h"
using namespace std;
// ****************************************************************************
// Class Definitions follow
typedef char* String;
// The CollegeMember class
class CollegeMember
{
protected:
int ID_Number;
string FirstName, LastName;
string AddressLine1, AddressLine2, StateProv, Zip;
string Telephone;
string E_Mail;
string answer, answer2, answer3, answer4;//used as sort of booleans for use with validation
// member functions
public:
CollegeMember (); // constructor
CollegeMember(const CollegeMember&); //overloaded constructor
void Modify (CollegeMember Member);
void InputData(int x);
string Summary (); //summary
string PrintMe(); //fully describes
}; // End of CollegeMember class declaration
Employee.h
#include <cstdlib>
#include <iostream>
#include<ctype.h>
#include<string.h>
#include "EmpAcademicRecord.h"
#include "EmpEmploymentHistory.h"
#include "EmpExtraCurricular.h"
#include "EmpPersonalInfo.h"
#include "EmpPublicationLog.h"
using namespace std;
// ****************************************************************************
// Class Definitions follow
typedef char* String;
// The Employee Class
class Employee: protected CollegeMember
{
float Salary;
protected:
string Department, JobTitle;
// Member Functions
public:
Employee (); // constructor
void Modify (Employee ThisEmp);
void InputData(int x);
void SetSalary (float Sal) // Specified as an in-line function
{ Salary = Sal;}
float GetSalary () {return Salary;} // Specified as an in-line function
string Summary (); //summary
string PrintMe(); //fully describes
}; // End of Employee class declaration
EmpAcademicRecord.h
#include <iostream>
#include <cstdlib>
#include<ctype.h>
#include<string.h>
using namespace std;
typedef char* String;
class EmpAcademicRecord: protected Employee{ //error occurs on this line
protected:
int ReferenceNumber;
string Institution;
string Award;
string start;
string end;
public:
EmpAcademicRecord();
void InputData (int x);
void Modify(EmpAcademicRecord ThisRec);
void Summary();
};
Jede mögliche Hilfe bei diesem würde sehr geschätzt.
Wenn Sie "employee.h" angeben, müssen Sie Header-Wächter einfügen, da "employee.h" diese Datei enthält. – chris
Danke für schnelle Rückmeldung! Ich habe das schon mal ausprobiert und devC++ schien einfach einzufrieren. In einem anderen Versuch habe ich das # include "Employee.h" in die EmpacademicRecord-Klasse eingefügt und dann #include "EmpAcademicRecord.h" in die CPP-Hauptdatei (die ich enthalten sollte) eingefügt und es wurde der Fehler beseitigt. Danke noch einmal! – user1323056
Daher der Kommentar "vielleicht eine einfache Sache", aber ich werde das zur Antwort hinzufügen. – paxdiablo