le pointeur this sait sur quoi pointer ?
Bonjour à toutes et à tous,
Voici un code généré par Qt Creator :
fichier mainwindow.cpp :
Code:
1 2 3 4 5 6
| MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow) // parent pointe vers rien dans la déclaration de la fonction
{
ui->setupUi(this);
} |
On a donc le constructeur de la classe MainWindow. Quand je pointe le curseur de la souris sur ui entre les accolades, cela marque le type "Ui::MainWindow".
Maintenant quand je pointe le curseur sur this il est marqué "Mainwindow". Au début cela ne me choquait pas : cela n'est que récemment que j'ai compris que les deux types Ui::MainWindow et MainWindow étaient différents. Bref...*
Ensuite quand je regarde le fichier main.cpp :
Code:
1 2 3 4 5 6 7
| int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w; // appel du constructeur pour construire l'objet w
w.show(); // affichage de la fenêtre
return a.exec();
} |
ça a fait tilt : en fait le this pointe sur l'objet w !
Mais c'est là où je coince : comment this sait que c'est sur w de type MainWindow qu'il faut pointer, alors qu'à l'appel du constructeur, l'objet est en cours de création, donc pas achevé ? Merci et passez une bonne journée.