QtGameTutorial
QtGameTutorial copied to clipboard
tutorial6: when and why do I have to add *parent as a class parameter and when not?
hi, as tp tutorial6: when do I have to add *parent as a class parameter and when not?
e.g., not: .cpp
Bullet::Bullet(): QObject(), QGraphicsRectItem(){
setRect(0,0,10,50);
QTimer * timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(move()));
timer->start(50);
}
header:
class Bullet: public QObject, public QGraphicsRectItem{
Q_OBJECT
public:
Bullet(QGraphicsItem * parent=0); // parent only in header
public slots:
void move();
};
but e.g., yes: .cpp
Enemy::Enemy(QGraphicsItem *parent): QObject(), QGraphicsRectItem(parent){ // <<<<<<<<<<<<<<<<<<<<<<<<<<<
int random_number = rand() % 700;
setPos(random_number,0);
setRect(0,0,100,100);
QTimer * timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(move()));
timer->start(50);
}
header:
class Enemy: public QObject, public QGraphicsRectItem{
Q_OBJECT
public:
Enemy(QGraphicsItem * parent=0); // parent in header like above
public slots:
void move();
};
i.e., why can't I just declare Enemy::Enemy(): QObject(), QGraphicsRectItem(){ ...}[/code]` similar to the Bullet file?
(ref.: https://github.com/MeLikeyCode/QtGameTutorial/tree/master/tutorial6)
(edit,
BTW, in previous tutorials https://github.com/MeLikeyCode/QtGameTutorial/tree/master/tutorial1 ... https://github.com/MeLikeyCode/QtGameTutorial/tree/master/tutorial5 this "parents" thing has not been added at all for either class)