Frage zu Objekten unter Verwndeung von Klassen
-
Hi Leute,
ich habe mal ne Frage, ich komm nicht weiter ich weiß nicht woran es liegt. Es wird der Nachname sowie der Vorname nicht ausgegeben und ich bekomme keine Fehlermeldung anscheinet sind die Variablen leer.
"unten ist der Programmcode"und noch ne Frage kann ich das ganze auch mit string´s machen?
Danke schon mal für die Antwort
#include <iostream.h> #include <conio.h> //-------------------------------- class Angestellter { private: char Nachname[20]; char Vorname[20]; double Brutto; public: //Methoden double ZeigBrutto(void); void SchreibBrutto(double); char ZeigNamen(void); char ZeigVornamen(void); //Konstruktor Angestellter(char N[20], char V[20], double B); //Destruktor ~Angestellter(); }; double Angestellter::ZeigBrutto(void) { return Brutto; } void Angestellter::SchreibBrutto(double B) { Brutto = B; } char Angestellter::ZeigNamen(void) { return Nachname[20]; } char Angestellter::ZeigVornamen(void) { return Vorname[20]; } Angestellter::Angestellter(char N[20], char V[20], double B) { Nachname[20] = N[20]; Vorname[20] = V[20]; Brutto = B; } Angestellter::~Angestellter() { } int main() { //1. Objekt double Bruttolohn; Angestellter Angestellter1("Meier", "Franz", 2000.0); Bruttolohn = Angestellter1.ZeigBrutto(); cout<< "Bruttolohn von Meier: " << Bruttolohn << endl; Angestellter1.SchreibBrutto(3000.0); Bruttolohn = Angestellter1.ZeigBrutto(); cout << "Bruttolohn von Meier: " << Bruttolohn << endl; //2. Objekt double Bruttolohn2; Angestellter Angestellter2("Bethmann", "Lisa", 4000.0); Bruttolohn2 = Angestellter2.ZeigBrutto(); cout<< "Bruttolohn von Bethmann: " << Bruttolohn2 << endl; //Bruttogehalt + 10% für Objekt1 Bruttolohn = Bruttolohn * 110 /100; cout<< "Bruttolohn plus 10% von Meier: " << Bruttolohn << endl; Angestellter1.SchreibBrutto(Bruttolohn); //Bruttogehalt + 10% für Objekt2 Bruttolohn2 = Bruttolohn2 * 110 /100; cout<< "Bruttolohn plus 10% von Bethmann: " << Bruttolohn2 << endl; Angestellter2.SchreibBrutto(Bruttolohn2); //Name und Vorname ausgeben char Name1[20], Vorname1[20]; Name1[20] = Angestellter1.ZeigNamen(); Vorname1[20] = Angestellter1.ZeigVornamen(); cout<< "Name: " << Name1[20] << " Vorname: " <<Vorname1[20] <<endl; getch(); return 0; }
-
#include <iostream> #include <string> using namespace std; class Angestellter { private: string Nachname; string Vorname; double Brutto; public: double ZeigBrutto() const { return Brutto; } void SchreibBrutto(double B) { Brutto = B; } const string &ZeigNamen() const { return Nachname; } const string &ZeigVornamen() const { return Vorname; } Angestellter(const string &Nachname, const string &Vorname, double B) : Nachname(Nachname), Vorname(Vorname), Brutto(B) { } }; int main() { //1. Objekt double Bruttolohn; Angestellter Angestellter1("Meier", "Franz", 2000.0); Bruttolohn = Angestellter1.ZeigBrutto(); cout<< "Bruttolohn von Meier: " << Bruttolohn << endl; Angestellter1.SchreibBrutto(3000.0); Bruttolohn = Angestellter1.ZeigBrutto(); cout << "Bruttolohn von Meier: " << Bruttolohn << endl; //2. Objekt double Bruttolohn2; Angestellter Angestellter2("Bethmann", "Lisa", 4000.0); Bruttolohn2 = Angestellter2.ZeigBrutto(); cout<< "Bruttolohn von Bethmann: " << Bruttolohn2 << endl; //Bruttogehalt + 10% für Objekt1 Bruttolohn = Bruttolohn * 110 /100; cout<< "Bruttolohn plus 10% von Meier: " << Bruttolohn << endl; Angestellter1.SchreibBrutto(Bruttolohn); //Bruttogehalt + 10% für Objekt2 Bruttolohn2 = Bruttolohn2 * 110 /100; cout<< "Bruttolohn plus 10% von Bethmann: " << Bruttolohn2 << endl; Angestellter2.SchreibBrutto(Bruttolohn2); //Name und Vorname ausgeben cout << "Name: " << Angestellter1.ZeigNamen(); cout << " Vorname: " << Angestellter1.ZeigVornamen() <<endl; // getch(); return 0; }
-
jo danke klappt!
mal ne andere Frage ich kann mich erinnern das man
using namespace std;
nie schreiben musste ((alt) Borland auf DOS-Basis)
wo für ist das jetzt gut oder für was braucht man das? hat ja voher auch ohne geklappt!
-
lmk-flash schrieb:
mal ne andere Frage ich kann mich erinnern das man
using namespace std;
nie schreiben musste ((alt) Borland auf DOS-Basis)
wo für ist das jetzt gut oder für was braucht man das? hat ja voher auch ohne geklappt!
das liegt daran, dass seit dem neuen C++-Standard alle std-libs im namespace std liegen.
mfg