Seite 1 von 1
qt4: copy constructor?
Verfasst: 12. Januar 2006 14:49
von arne.anka
ich habe eine klasse von qlabel abgeleitet und davon eine instanz.
da stehen etliche infos drin (farbe, grösse, position ...).
jetzt möchte ich davon eine exakte kopie erzeugen, indem ich einen konstruktor verwende.
der "normale" konstruktor sieht so aus:
Code: Alles auswählen
MyWidget::MyWidget(QWidget * parent, QString name):QLabel(parent)
der copy-constructor sollte etwa so aussehen:
wie stelle ich es nun an? bei java würde ich halt
machen,
Code: Alles auswählen
MoveWidget(source->parentWidget(), source->accessibleName());
führt jedoch nicht zum erfolg.
Verfasst: 12. Januar 2006 21:56
von uhu01
Hy!
Der Copy constructor sollte so aussehen:
du kannst Variablen, Basisklassen wie vom normalen Konstructor gewohnt hinter einen ":" schreiben, im Konstructor ( zwischen { und }) kopierst du dann die Daten wie es für die Daten notwendig ist. ( bei pointern Speicherbereich allokieren und Daten kopieren, etc.).
Du hast Zugriff auf die Member des neuen Objekts (eh klar) und auch zugriff auf das zu kopierende Objekt (da beide diesselbe Klasse).
Hinter dem ":" kannst du übrigens auch copy-constructors verwenden, sollten diese Implementiert sein.
EDIT: natürlich muss es in C++ MyWidget& heißen, hatte das übersehen, nur gesehen das ein Pointer statt einer Referenz verwendet wird. Danke an Christian81 für den Hinweis.
mfg
uhu01
Verfasst: 13. Januar 2006 09:15
von Christian81
uhu01 hat geschrieben:Hy!
Der Copy constructor sollte so aussehen:
Wohl eher so:
Aber es hat wohl keinen Zweck - er lässt sich nicht belehren wie ich auf qt-interest gesehen habe...
http://www.volkard.de/vcppkold/copykonstruktor.html
Verfasst: 13. Januar 2006 10:15
von arne.anka
Christian81 hat geschrieben:Aber es hat wohl keinen Zweck - er lässt sich nicht belehren wie ich auf qt-interest gesehen habe...
war das jetzt nur eine stillosigkeit oder direkt unverschämt?
Verfasst: 13. Januar 2006 10:18
von Christian81
arne.anka hat geschrieben:Christian81 hat geschrieben:Aber es hat wohl keinen Zweck - er lässt sich nicht belehren wie ich auf qt-interest gesehen habe...
war das jetzt nur eine stillosigkeit oder direkt unverschämt?
War vielleicht etwas hart ausgedrückt, aber ich finde Du bist etwas hinweisresistent - zumindest manchmal. Habe Dich ja auch schon auf qt-interest gesehen. Alles muss so sein wie in Java - was anderes gilt nicht. Dabei vergisst du das C++ *nicht* Java ist.
Verfasst: 13. Januar 2006 10:29
von arne.anka
Christian81 hat geschrieben:Alles muss so sein wie in Java - was anderes gilt nicht. Dabei vergisst du das C++ *nicht* Java ist.
das ist plattester unfug.
ich habe darauf hingwiesen, dass ich c++ anfänger bin und auf das java-äquivalent verwiesen, um zu verdeutlichen, was ich meine.
nach meinem dafürhalten ist erst im dritten oder vierten posting überhaupt auf das problem eingegenagen worden (nämlich, dass es das so unter c++ nicht gibt, während die ersten an meiner anfrage vorbei operiert haben).
ich wäre dankbar, wenn du solche persönlichen werturteile unterlassen würdest. du kennst mich nicht und kannst mich kaum nach den posts einschätzen -- nicht zuletzt das zitat belegt eindrücklich, dass das, was ich schreibe und das, was du liest, zwei grundverschieden dinge sein können.