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


Anmelden zum Antworten