Vererbung



  • Hey Leute,

    ich habe ein kleines Programm geschrieben, welches in die Klassen "Demo" und "Mitarbeiter" aufgeteilt ist. In der Klasse Demo existieren drei Funktionen zum Addieren, Subtrtrahieren und Dividieeren der Zahlen "wert1" und "wert2". Das Ergebnis "Summe" und Produkt" soll an die Funktion "BerechneEndergbnis" vererbt werden. Zuerst hatte ich die Funktionen im Header- und CPP-Teil standardmäßig deklariert/definiert, woraufhin mir der Compiler unzählige Fehler ausgespuckt hat. Mein derzeitiger Ansatz über Konstruktoren bringt mich leider auch nicht weiter. Was mache ich verkehrt? Vielen Dank für eure Hilfe!

    Headerdatei:

    #include <iostream>
    #include <string>
    using namespace std;

    class Demo

    {
    public:
    int wert;
    int wert1;
    int wert2;
    int produkt;
    int summe;
    int Quotient;

    void tueEtwas();

    AddiereZahlen() : wert1() : wert2();

    Multiplikation() : wert1() : wert2();

    Division() : wert1(): wert2();
    };

    class Mitarbeiter : public Demo
    {

    public:
    int endergebnis;

    int BerechneEndergebnis() : summe() : produkt();
    };

    CPP-Datei:

    #include "HalloWelt_a.h"
    #include <iostream>
    #include <string>
    using namespace std;

    int Demo :: AddiereZahlen() : wert1() : wert2()
    {
    int summe = wert1 + wert2;
    return summe;
    }

    void Demo ::tueEtwas(){
    }

    int Demo :: Multiplikation() : wert1() : wert2()
    {
    int produkt = wert1* wert2;
    return produkt;
    }

    int Demo ::Division() : wert1() : wert2()
    {
    wert1 =2;
    wert2 =4;
    int Quotient = wert1/wert2;
    int Quotient = Quotient/2;
    std::cout <<"Nach der Divsion ergibt sich :"<<Quotient<<endl;
    return Quotient;
    }

    int Mitarbeiter :: BerechneEndergebnis : summe() : produkt()
    {
    Endergebnis =summe+ produkt;
    }

    int main(){
    int a =2;
    std::cout <<"Die Variable a enthält den Wert :" <<a<<endl;
    std::cin >>a;
    return 0;

    }



  • C++Pete schrieb:

    ich habe ein kleines Programm geschrieben, welches in die Klassen "Demo" und "Mitarbeiter" aufgeteilt ist. In der Klasse Demo existieren drei Funktionen zum Addieren, Subtrtrahieren und Dividieeren der Zahlen "wert1" und "wert2". Das Ergebnis "Summe" und Produkt" soll an die Funktion "BerechneEndergbnis" vererbt werden.

    Was soll das bedeuten? Das ergibt keinen Sinn. Ich versteh nichtmal, was es heißen soll, dass ein "Ergebnis" vererbt wird. Falls du damit meinst, dass die Variablen summe und produkt vererbt werden -- dazu ist überhaupt nichts besonderes zu tun, außer der Angabe der Basisklasse natürlich.

    AddiereZahlen() : wert1() : wert2();
    
    	Multiplikation() : wert1() : wert2();	
    
    	Division() : wert1():  wert2();
    

    Was soll das für eine Syntax sein? Sieht ein bisschen nach Initialisiererlisten aus, die gehören aber zu Konstruktoren (und außerdem zur Definition, nicht zur Deklaration).



  • Das soll die Initialiserungsliste sein. Das Programm ist rein fiktiv. Es soll zwei Zahlen addiert und subtrahiert werden und das ERGEBNIS/der RÜCKGABEWERT an die Funktion "BerechneEndergebnis" vererbt werden. Ich muss dazu sagen...ich bin C++-Neuling ;).



  • C++Pete schrieb:

    Das soll die Initialiserungsliste sein.

    Ich hatte schon was zu Initialisiererlisten geschrieben. Wieso ignorierst du das?

    und das ERGEBNIS/der RÜCKGABEWERT an die Funktion "BerechneEndergebnis" vererbt werden.

    Das ergibt keinen Sinn.

    Ich muss dazu sagen...ich bin C++-Neuling ;).

    Dann bist du ja noch lernfähig. Informier dich mal in einem Lehrbuch deiner Wahl darüber, was Vererbung ist und wozu es gut ist. Genauso Initialisiererlisten.


Anmelden zum Antworten