Finde den Fehler nicht
-
Hallo c++ler
ich habe vor kurzem klassen und so gelernt. Jetzt habe ich aber ein Problem: Ich habe mal aus langeweile ein kleines Programm darüber zur Übung geschrieben. Aber der Compiler spuckt mir dann 8 Fehler aus. Kann mir einer Helfen? Danke
#include <iostream> using namespace std; //Klassen // class C_Personalien { private: char name[30]; int Alter; public: void ZeigeDaten (); void EingabeDaten (); }; C_Personalien::EingabeDaten() { cin.ignore (); cout << "Name der Person: "; cin.get (name,29); cout << endl; cout << "Alter der Person: "; cin >> Alter; } C_Personalien::ZeigeDaten() { cout << "Name der Person: " << name; cout << "\n Alter der Person: " << Alter; } int main () { //Variabeln // int Anzahl; C_Personalien *pPersonen = NULL; cout << "Wieviele Personen gibt es: "; cin >> Anzahl; pPersonen = new C_Personalien[Anzahl]; for (int i=0; i<Anzahl; i++) { cout << "Person Nummer " << i; pPersonen[i].EingabeDaten (); } for (int j=0; j<Anzahl; j++) { cout << "Person Nummer " << j; pPersonen[j].ZeigeDaten (); } return 0; }
Ps:
Die fehler:
1>c:\users\hiho\documents\visual studio 2008\projects\shot un so\shot un so\shot un so.cpp(31) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\hiho\documents\visual studio 2008\projects\shot un so\shot un so\shot un so.cpp(31) : error C2556: 'int C_Personalien::EingabeDaten(void)': Überladene Funktion unterscheidet sich nur hinsichtlich des Rückgabetyps von 'void C_Personalien::EingabeDaten(void)'
1> c:\users\hiho\documents\visual studio 2008\projects\shot un so\shot un so\shot un so.cpp(27): Siehe Deklaration von 'C_Personalien::EingabeDaten'
1>c:\users\hiho\documents\visual studio 2008\projects\shot un so\shot un so\shot un so.cpp(31) : error C2371: 'C_Personalien::EingabeDaten': Neudefinition; unterschiedliche Basistypen
1> c:\users\hiho\documents\visual studio 2008\projects\shot un so\shot un so\shot un so.cpp(27): Siehe Deklaration von 'C_Personalien::EingabeDaten'
1>c:\users\hiho\documents\visual studio 2008\projects\shot un so\shot un so\shot un so.cpp(42) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\hiho\documents\visual studio 2008\projects\shot un so\shot un so\shot un so.cpp(42) : error C2556: 'int C_Personalien::ZeigeDaten(void)': Überladene Funktion unterscheidet sich nur hinsichtlich des Rückgabetyps von 'void C_Personalien::ZeigeDaten(void)'
1> c:\users\hiho\documents\visual studio 2008\projects\shot un so\shot un so\shot un so.cpp(26): Siehe Deklaration von 'C_Personalien::ZeigeDaten'
1>c:\users\hiho\documents\visual studio 2008\projects\shot un so\shot un so\shot un so.cpp(42) : error C2371: 'C_Personalien::ZeigeDaten': Neudefinition; unterschiedliche Basistypen
1> c:\users\hiho\documents\visual studio 2008\projects\shot un so\shot un so\shot un so.cpp(26): Siehe Deklaration von 'C_Personalien::ZeigeDaten'
1>c:\users\hiho\documents\visual studio 2008\projects\shot un so\shot un so\shot un so.cpp(62) : error C2264: 'C_Personalien::EingabeDaten': Fehler in der Funktionsdefinition oder Funktionsdeklaration, Funktion nicht aufgerufen
1>c:\users\hiho\documents\visual studio 2008\projects\shot un so\shot un so\shot un so.cpp(68) : error C2264: 'C_Personalien::ZeigeDaten': Fehler in der Funktionsdefinition oder Funktionsdeklaration, Funktion nicht aufgerufen
1>Das Buildprotokoll wurde unter "file://c:\Users\hiho\Documents\Visual Studio 2008\Projects\Shot un so\Shot un so\Debug\BuildLog.htm" gespeichert.
1>Shot un so - 8 Fehler, 0 Warnung(en)
-
Ich hab's jetzt erstmal nur syntaktisch korrigiert. Ob das ganze Sinn macht, habe ich jetzt nicht angeguckt. Aber so kannst du erstmal weitermachen:
#include <iostream> using namespace std; //Klassen // class C_Personalien { private: char name[30]; int Alter; public: void ZeigeDaten (); void EingabeDaten (); }; void C_Personalien::EingabeDaten() // Hier fehlte der Rückgabetyp { cin.ignore (); cout << "Name der Person: "; cin.get (name,29); cout << endl; cout << "Alter der Person: "; cin >> Alter; } void C_Personalien::ZeigeDaten() // hier ebenfalls { cout << "Name der Person: " << name; cout << "\n Alter der Person: " << Alter; } int main () { //Variabeln // int Anzahl; C_Personalien *pPersonen = NULL; cout << "Wieviele Personen gibt es: "; cin >> Anzahl; pPersonen = new C_Personalien[Anzahl]; for (int i=0; i<Anzahl; i++) { cout << "Person Nummer " << i; pPersonen[i].EingabeDaten (); } for (int j=0; j<Anzahl; j++) { cout << "Person Nummer " << j; pPersonen[j].ZeigeDaten (); } return 0; }
-
Ahh danke^^
Jetzt weiss ich was falsch war. Ich habe das "void" vergessen.
Danke