Nochmal ein Problem für die Qt-Fans. Das kurze angehängte Programm tut nicht das, was es soll. Würde ich die virtuelle Mehrfachvererbung durch eine normale ersetzen, liesse sich das Programm nicht einmal übersetzen. Aber ich lasse mich gern von den Qt-Experten erklären, welche Fehler ich hier mache.
Torsten
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Tuesday 23 April 2002 09:59, Torsten Werner wrote:
Nochmal ein Problem für die Qt-Fans. Das kurze angehängte Programm tut nicht das, was es soll. Würde ich die virtuelle Mehrfachvererbung durch eine normale ersetzen, liesse sich das Programm nicht einmal übersetzen. Aber ich lasse mich gern von den Qt-Experten erklären, welche Fehler ich hier mache.
Ich denke die virtuelle Vererbung passt ihm nicht. "Diamond-Inheritance" ist sowieso eine gefaehrliche Sache. Gibt es nicht eine sauberere Loesung?
Achso wenn Du normal mehrfachvererbst muss der Abkoemmling von QObject immer als erstes genannt werden, weil die Qt-Mechanismen sich darauf verlassen.
Bitte lies mal die Howtos von Qt zu diesen Themen.
Konrad
- -- If a man had a child who'd gone anti-social, killed perhaps, he'd still tend to protect that child. -- McCoy, "The Ultimate Computer", stardate 4731.3
Am Dienstag, dem 23. April 2002 um 21:09:58, schrieb Konrad Rosenbaum:
"Diamond-Inheritance" ist sowieso eine gefaehrliche Sache.
Warum? Bitte keine 'FUDs' ohne genaue Begründung schreiben.
Gibt es nicht eine sauberere Loesung?
Was war unsauber am Beispielcode?
Achso wenn Du normal mehrfachvererbst muss der Abkoemmling von QObject immer als erstes genannt werden, weil die Qt-Mechanismen sich darauf verlassen.
Wenn es aber nun mehrere Abkömmlinge von QObject gibt?
Bitte lies mal die Howtos von Qt zu diesen Themen.
Habe gerade noch mal reingeschaut und nichts auf die Schnelle gefunden. Muss ich wohl komplett lesen.
Torsten
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Wednesday 24 April 2002 09:27, Torsten Werner wrote:
Am Dienstag, dem 23. April 2002 um 21:09:58, schrieb Konrad Rosenbaum:
"Diamond-Inheritance" ist sowieso eine gefaehrliche Sache.
Warum? Bitte keine 'FUDs' ohne genaue Begründung schreiben.
Die bergen immer die Gefahr in sich, dass etwas nicht funktioniert, ausserdem sind sie (AFAIK) binaer-inkompatibel zu normaler Mehrfachvererbung.
Gibt es nicht eine sauberere Loesung?
Was war unsauber am Beispielcode?
diamond-inheritance
Achso wenn Du normal mehrfachvererbst muss der Abkoemmling von QObject immer als erstes genannt werden, weil die Qt-Mechanismen sich darauf verlassen.
Wenn es aber nun mehrere Abkömmlinge von QObject gibt?
Dann geht es nicht. Wenn Du einen besseren Algorithmus findest, der aber immernoch wie Qt aussieht wird Dich die Welt lieben.
Bitte lies mal die Howtos von Qt zu diesen Themen.
Habe gerade noch mal reingeschaut und nichts auf die Schnelle gefunden. Muss ich wohl komplett lesen.
jepp. Sind noch eine Menge anderer interessanter Sachen drin.
Konrad
- -- I've already got a female to worry about. Her name is the Enterprise. -- Kirk, "The Corbomite Maneuver", stardate 1514.0
Am Mittwoch, dem 24. April 2002 um 18:36:11, schrieb Konrad Rosenbaum:
Die bergen immer die Gefahr in sich, dass etwas nicht funktioniert, ausserdem sind sie (AFAIK) binaer-inkompatibel zu normaler Mehrfachvererbung.
Auch 'int's bergen die Gefahr in sich, dass *irgendetwas* nicht funktioniert und sie sind binär inkompatibel zu fast allen anderen C++-Typen. Kein Grund 'int's nicht trotzdem zu verwenden. Etwas schwach ist deine Begründung schon.
Was war unsauber am Beispielcode?
diamond-inheritance
Wie gesagt, ohne "saubere" Begründung ein sinnloses Argument. Virtuelle Vererbung ist ein echtes Feature der Sprache und nicht etwa eine der manchmal ärgerlichen Kompatibilitätskrücken zu C.
Wenn es aber nun mehrere Abkömmlinge von QObject gibt?
Dann geht es nicht. Wenn Du einen besseren Algorithmus findest, der aber immernoch wie Qt aussieht wird Dich die Welt lieben.
Qt ist Schuld, dass man nicht in gewohntem C++ programmieren kann, sondern sich gelegentlich mit workarounds behelfen muss. Qt wäre also zu fixen, was ich mit meinen schicken Wrapper auf indirektem Wege unter anderem bezwecke.
Torsten
lug-dd@mailman.schlittermann.de