Aufruf Basisklasse



  • Hallo zusammen,

    ich habe eine Basisklasse und eine Subklasse.

    class Tier {
          private:
                  string name;
    
          public:
    
                 Tier() {}
    
                 Tier (string n) : name (n) {}
    
                 //Methoden
                void datenausgeben() {
                      cout << "name: " << name << endl;
                      }
    
    };
    
    class Saeugetier : public Tier {
          private:
                  float anzahlBeine;
    
          public:
                 Saeugetier() {}
    
                 Saeugetier(float anzahl, string n) : anzahlBeine(anzahl), Tier(n) {};    
    
                 void datenausgeben() {
                      //Ist das mit Java "super." vergleichbar?
                      Tier::datenausgeben();
                      cout << anzahlBeine;
    
                      }
    
    };
    

    Ich hab zum Aufruf der Methode datenausgaben der Baisklasse eine Frage:

    Passiert hier das gleiche wie bei Java mit dem Schlüsselwort "super."?

    Danke!

    Gruß



  • Ein paar Tipps:
    1.) Verwende niemals "using namespace std;" in einem Header, das ist ganz ganz böse. Und mit ganz ganz böse meine ich ganz ganz böse.
    2.) Übergib strings immer per const-Referenz. const std::string&
    3.) Ja, hier passiert dasselbe wie in Java. Allerdings ist in Java das super(...) immer die erste Anweisung, mach das in deiner Initialisierungsliste genauso.


Anmelden zum Antworten