Definition von Klassen
-
Hallo schreibe morgen eine Schulaufgabe über dieses Thema und komme bei meinem Programm leider nicht weiter.
Bekomme immer die Fehlermeldung Deklaration nicht ordnungsgemäß abgeschlossen E2040
Könntet ihr mir da weiter helfen??//--------------------------------------------------------------------------- #pragma hdrstop #include <string.h> #include <stdio.h> #include <conio.h> //--------------------------------------------------------------------------- class Mitarbeiter { private: char name[50]; int gehalt; public: Mitarbeiter(char *nname, int ngehalt) { strcpy(name,nname); gehalt = ngehalt; }; int Datenausgabe(void) { printf("\nMA: %20s - GH: %5d", name, gehalt); return 0; }; }; //--------------------------------------------------------------------------- class Angestellter: public Mitarbeiter { private: int urlaubsgeld; public: Angestellter(char *nname, int ngehalt, int nurlgeld) : Mitarbeiter(nname, ngehalt) { urlaubsgeld = nurlgeld; }; int Datenausgabe(void) { Mitarbeiter::Datenausgabe(); printf(" - UG: %5d", urlaubsgeld); return 0; }; }; //--------------------------------------------------------------------------- class Manager: public Angestellter { private: int provision; public: Manager(char *nname, int ngehalt, int nurlgeld, int nprov) :Angestellter(nname,ngehalt,nurlgeld) { provision = nprov; }; int Datenausgabe(void) { Mitarbeiter::Datenausgabe(); printf(" - PR: %5d", provision); return 0; }; //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { Mitarbeiter MA1("Christian Reng", 3500); MA1.Datenausgabe(); Angestellter MA2("Thomas Gold", 4500, 1000); MA2.Datenausgabe(); Manager MA3("Michael Silber", 4500, 1000, 1000); MA3.Datenausgabe(); setbuf(stdout,NULL); getch(); return 0; } //---------------------------------------------------------------------------[edit]Bitte Code-Tags verwenden![/edit]
-
In der Klasse Manager fehlt eine schliessende geschweifte Klammer '}' ....
-
Joe_M. schrieb:
In der Klasse Manager fehlt eine schliessende geschweifte Klammer '}' ....
Unter anderem...
//--------------------------------------------------------------------------- #pragma hdrstop #include <string.h> #include <stdio.h> #include <conio.h> //--------------------------------------------------------------------------- class Mitarbeiter { private: char name[50]; int gehalt; public: Mitarbeiter(char *nname, int ngehalt) { strcpy(name,nname); gehalt = ngehalt; } int Datenausgabe(void) { printf("\nMA: %20s - GH: %5d", name, gehalt); return 0; } }; //--------------------------------------------------------------------------- class Angestellter: public Mitarbeiter { private: int urlaubsgeld; public: Angestellter(char *nname, int ngehalt, int nurlgeld) : Mitarbeiter(nname, ngehalt) { urlaubsgeld = nurlgeld; } int Datenausgabe(void) { Mitarbeiter::Datenausgabe(); printf(" - UG: %5d", urlaubsgeld); return 0; } }; //--------------------------------------------------------------------------- class Manager: public Angestellter { private: int provision; public: Manager(char *nname, int ngehalt, int nurlgeld, int nprov) :Angestellter(nname,ngehalt,nurlgeld) { provision = nprov; } int Datenausgabe(void) { Mitarbeiter::Datenausgabe(); printf(" - PR: %5d", provision); return 0; } }; //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { Mitarbeiter MA1("Christian Reng", 3500); MA1.Datenausgabe(); Angestellter MA2("Thomas Gold", 4500, 1000); MA2.Datenausgabe(); Manager MA3("Michael Silber", 4500, 1000, 1000); MA3.Datenausgabe(); setbuf(stdout,NULL); getch(); return 0; } //--------------------------
-
Hallo,
Das ist ja ne ziemliche Mischung von C und C++. Vielleich lieber so.
#include <string> // statt string.h #include <iostream> // für alle Ein/Ausgabeoperationen #pragma hdrstop // nur wenn precompiled Header verwendet werden using namespace std; // öffnen von Namespace Standard //--------------------------------------------------------------------------- class Mitarbeiter { private: std::string name; // bitte kein char* wenns nicht nötig ist int gehalt; public: Mitarbeiter(const std::string &nname, int ngehalt) : name(nname), gehalt(ngehalt) {} // bei Konstruktoren lieber Initialisierunglisten verwenden void Datenausgabe() { cout << "\nMA: " << name << " - GH: " << gehalt << endl; // endl macht Zeilenumbruch und flush, Bei Bedarf weglassen } }; //--------------------------------------------------------------------------- class Angestellter: public Mitarbeiter { private: int urlaubsgeld; public: Angestellter(const std::string &nname, int ngehalt, int nurlgeld) : Mitarbeiter(nname, ngehalt), urlaubsgeld(nurlgeld) {} void Datenausgabe(void) { Mitarbeiter::Datenausgabe(); cout << " - UG: " << urlaubsgeld << endl; }; }; //--------------------------------------------------------------------------- class Manager: public Angestellter { private: int provision; public: Manager(const std::string &nname, int ngehalt, int nurlgeld, int nprov) : Angestellter(nname,ngehalt,nurlgeld), provision(nprov) {} void Datenausgabe(void) { Mitarbeiter::Datenausgabe(); cout << " - PR: " << provision << endl; } }; //--------------------------------------------------------------------------- int main(int argc, char* argv[]) { Mitarbeiter MA1("Christian Reng", 3500); MA1.Datenausgabe(); Angestellter MA2("Thomas Gold", 4500, 1000); MA2.Datenausgabe(); Manager MA3("Michael Silber", 4500, 1000, 1000); MA3.Datenausgabe(); cin.get(); return 0; } //---------------------------------------------------------------------------
Entschuldingung liebe Moderatoren für den Quelltext.Für den OP:
Bitte ein gutes C++ Tutorial durcharbeiten (siehe C++ Forum)Sayonara