#include <QObject>
class base : public QObject
{
public:
base();
virtual QString getS();
};
class upper : public base
{
public:
upper();
virtual QString getS();
};
virtuelle Methoden funktionieren in Konstruktoren noch nicht (respektive: das "Überladen" funktioniert noch nicht, weil die dazu benötigte VTable erst nachher aufgesetzt wird). Abhilfe kannst du nur mit einer init-Methode schaffen:
Meist ist das ok so, weil ein Objekt im CTor ja nur "sich selbst" initialisieren soll (seine Membervariabeln aufsetzen). Komplexere Geschichten werden daher (und auch aus anderen Gründen, wie z.B. "Exceptions" oder "Qt-Signals") in normale Methoden ausgelagert (z.B. "open()"-Methoden von File- oder Datenbank-Klassen).
hth..
Zuletzt geändert von solarix am 5. April 2011 14:02, insgesamt 1-mal geändert.