[c++]Konstruktor klasy abstrakcyjnej

0

Witam
Mam problem z konstruktorem i nie wiem jak go rozwiazać oto przykład który powoduje identyczny problem.

class figura
{
    QString* opis;
    protected:
    figura(QString &op) {
        opis =&op;
    }
    public:
    virtual void rysuj() = 0;

};

class trojkat : public figura
{
    int podst, wys;
    protected:
    trojkat(QString &opt) : figura(opt) {
    }
    public:
    trojkat()
    {
        podst = 3;
        wys = 4;
    }
    virtual void rysuj() {
        qDebug("RYSUJE FIGURE");
    }
};

main:

    figura* jakasFigura;
    jakasFigura = new trojkat();
    jakasFigura->rysuj();
    delete jakasFigura;

Powoduje to powstanie błędu:
.\main.cpp(23) : error C2512: 'figura' : no appropriate default constructor available

Problem polega na tym że klasa "figura" jest częścią biblioteki i muszę napisać własną subklase gdzie popełniam błąd? Jak poprawnie to zaimlpementować?

Kompilator MSVC++ 2005

0

Przed utworzeniem obiektu klasy trojkat musi ruszyć konstruktor klasy figura, innej rady nie ma. Nawet jeśli jawnie go nie uruchomisz z listy inicjalizacyjnej to on i tak musi ruszyć. Skoro na liscie go nie ma, to jest poszukiwany domyślny, bezargumentowy konstruktor. Nie ma takiego, wiec pojawia się błąd.
Jak rozwiazać ten problem? Dodaj konstruktor bezargumentowy do klasy figura (nawet pusty).

1 użytkowników online, w tym zalogowanych: 0, gości: 1