rubenvb
Legacy Member
Hi 9livers,
Ik ben Qt aan het leren uit "THe Book of Qt 4...".
Nu ben ik aan hfdstk 2, en daar wordt een enorm lange constructor gebruikt om verschillende Qdingen te "new"-en. Nu dacht ik altijd dat dit beter in de intializer list staat, maar dan moeten al die ge-"new"-de objecten wel een class member zijn. Concreet komt het dus op dit neer:
Zoals in het boek:
Zoals ik het zou doen:
Ondanks het zijn van Qt code, kan een mens die in C++ thuis is normaal op mijn vraagje antwoorden: wat is het verschil (behalve dat je klasse groter is in mijn voorbeeld)? Over de destructor hoef je je in Qt geen zorgen te maken, alle ge-"new"-de toestanden worden samen met je klasse mooi uit het geheugen gehaald (vraag mij niet hoe of waar, het is gewoon zo, and I like it
).
Merci!
Ik ben Qt aan het leren uit "THe Book of Qt 4...".
Nu ben ik aan hfdstk 2, en daar wordt een enorm lange constructor gebruikt om verschillende Qdingen te "new"-en. Nu dacht ik altijd dat dit beter in de intializer list staat, maar dan moeten al die ge-"new"-de objecten wel een class member zijn. Concreet komt het dus op dit neer:
Zoals in het boek:
Code:
// header
class QKlasse : public QWidget
{
Q_OBJECT
public:
QKlasse();
}
// implementatie van de klasse
QKlasse::QKlasse()
{
// eerst wordt alles ge-"new"-d
label = new QLabel();
button = new QPushButton();
layout = new QVBoxLayout();
//hieronder worden dan alle layouts samengesteld en connecties gemaakt
}
Code:
// header
class QKlasse : public QWidget
{
Q_OBJECT
public:
QKlasse();
private:
QLabel *label;
QPushButton *button;
QVBoxLayout *layout;
// enz.
}
// implementatie van de klasse
QKlasse::QKlasse()
: label( new QLabel() ),
button( new QPushButton() ),
layout( new QVBoxLayout() )
//enz.
{
//hier worden dan alle layouts samengesteld en connecties gemaakt
}
Ondanks het zijn van Qt code, kan een mens die in C++ thuis is normaal op mijn vraagje antwoorden: wat is het verschil (behalve dat je klasse groter is in mijn voorbeeld)? Over de destructor hoef je je in Qt geen zorgen te maken, alle ge-"new"-de toestanden worden samen met je klasse mooi uit het geheugen gehaald (vraag mij niet hoe of waar, het is gewoon zo, and I like it
).Merci!