Abstrakte Klasse?



  • Hallo!

    Wie muss ich es definieren wenn ich eine Abstrakte Klasse definieren will?

    class baseClass
    {
    
    };
    
    class abClass
    {
    
    }
    

    mfg



  • Du gibst ihr rein-virtuelle Funktionen.



  • Oder (wenn auch eine ungewöhnliche Antwort), mache Konstruktor und Destruktor protected.

    Simon



  • theta schrieb:

    Oder (wenn auch eine ungewöhnliche Antwort), mache Konstruktor und Destruktor protected.

    Simon

    Nicht nur ungewöhnlich, sondern auch falsch. Abstrakte Klassen sind Klassen, die nur als Bestandteil einer abgeleiteten Klasse instantiiert werden können. Bei protected Dtor+Ctor ist es aber möglich, dass eine abgeleitete Klasse doch ein eigenständiges Objekt der Basisklasse erstellen kann:

    class Abstract
    {
    protected:
      Abstract() {}
      ~Abstract() [}
    };
    
    class Cheater : public Abstract
    {
      static void cheat()
      {
        Abstract a;
        std::cout << "I constructed an abstract object! HAHA!" << std::endl;
      } 
    };
    


  • pumuckl schrieb:

    theta schrieb:

    class Abstract
    
      static void cheat()
      {
        Abstract a;
        std::cout << "I constructed an abstract object! HAHA!" << std::endl;
      }
    

    [

    👍 Ohman der ist geil 😃 besonders das "HAHA!" :D:D 🤡



  • Stimmt. War noch in meinem Kopf herum- gegeistert.
    Wird gestrichen.

    Simon

    PS: @FireFighter: Was ist daran so geil?



  • Ich finde die bezeichnung der Klasse + die Ausgabe der Funktion irgendwie lustig, die vorstellung das mich mein PC "anbrüllt" ist geil:D


Log in to reply