Konstruktor der Basisklasse verwenden



  • Hallo,

    ich möchte den Konstruktor der Basisklasse verwenden, bekomme aber immer eine Fehlermeldung: error C2614: 'PolynomNst': Unzulässige Elementinitialisierung: 'Polynom' ist weder Basis noch Element

    ich habe dazu 2 Klassen definiert. Mein C++ Code lautet:

    class Polynom;
    class PolynomNst;

    class Polynom
    { ...
    public:
    Polynom (int);
    ...
    };

    class PolynomNst
    { ...
    public:
    PolynomNst(int);
    ...
    };

    ...

    PolynomNst::PolynomNst(int n):Polynom(n)
    {
    anzNst=0;
    Nst=new double [n+1];
    for (int i=0; i<n+1; i++)
    {
    Nst[i]=0;
    }
    }

    Ich kann meinen Fehler nicht finden. Vielleicht kann mir jemand weiter helfen.



  • class PolynomNst : public Polynom



  • Bitte cpp tags verwenden. Ansonsten...

    // ...
    class PolynomNst : public Polynom
    {
    /// ...
    };
    

    Greets
    Tobi



  • super Danke für deine schnelle Hilfe 🙂



  • Die Fehlermeldung ist doch eindeutig --> 'Polynom' ist weder Basis noch Element... der Klasse PolynomNst.

    In der sog. Initialisierungsliste kannst du Attribute der eigenen Klasse initialisieren und den Konstruktor der Basisklasse aufrufen. In der Initialisierungsliste willst du aber nun den Konstruktor der Klasse Polynom aufrufen... geht nicht, da Polynom keine Basisklasse von PolynomNst ist, daher Fehler.

    Die Lösung wurde nun ja schon genannt. 😉


Log in to reply