Abgeleitete Klasse gibt Basisklasse einen Parameter



  • hiho,
    ich bin grad bissel durcheinander aber geht das nicht so (frage ist oben)

    class Base{
        Base();
        Base(int x);
    };
    
    class Abgl{
        Abgl() : Base(1);
    };
    

    wo ist der fehler ?


  • Mod

    Die Initialisierungsliste ist Teil der Definition des Konstruktors nicht aber der Deklaration. Diese Definition muss aber auch noch den Funktionsrumpf enthalten, der hier fehlt. Zudem ist der Konstruktor der Basisklasse nicht aufrufbar, da privat.



  • ... und du hast vergessen, 'Abgl' von 'Base' abzuleiten 😉



  • nehmen wir an der ctor hat einen parameter

    und wenn der wert kleiner 10 ist soll er was anderes machen als wenn er größer als 10 ist ...

    wie soll ich das dann bewerkstelligen ?



  • Stelfer schrieb:

    nehmen wir an der ctor hat einen parameter
    und wenn der wert kleiner 10 ist soll er was anderes machen als wenn er größer als 10 ist ...
    wie soll ich das dann bewerkstelligen ?

    if (wert < 10)
    {
      // mach dies
    }
    else
    {
      // mach das
    }
    

    😉



  • pale dog schrieb:

    Stelfer schrieb:

    nehmen wir an der ctor hat einen parameter
    und wenn der wert kleiner 10 ist soll er was anderes machen als wenn er größer als 10 ist ...
    wie soll ich das dann bewerkstelligen ?

    if (wert < 10)
    {
      // mach dies
    }
    else
    {
      // mach das
    }
    

    😉

    das war nicht das was ich wollte....

    mein problem is so dumm -.-

    aber alles klar



  • class Abgl{ // warum heißt das ding Abgeleitet, wenn du nichts ableitest?
    
    class Base
    {
    protected:
        Base(const unsigned int&);
    };
    
    class Abgl : public Base
    {
    
        Abgl() : Base(1)
        {}
    };
    

    🙂



  • ja wie gesagt ein dummer fehler ...

    habe:

    class base{
          base(int x);
    };
    
    class der : public Base{
          der():Base(1);
    };
    

    geschrieben anstatt von :

    class base{
          base(int x);
    };
    
    class der : public base{
          der();
    };
    
    der::der():base(1){
    }
    

Anmelden zum Antworten