Bonjour à toutes et à tous,
Voici un code généré par Qt Creator :
fichier mainwindow.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.