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)


  • Mod

    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 😋


Log in to reply