HS : ne fais pas de copie d'écran, copie-colle ton code directement (avec le bouton Code <>)
HS2 : ne prédéclare pas tes variables pour rien
| // non
int nombre (0);
for (...) {
nombre = ...
}
// oui
for (...) {
const int nombre = ...
}
|
HS3 : j'imagine que ce n'est pas une erreur, mais ton "for" est étrange. En C++, habituellement, on ne compte pas de 1 à "<= value", mais de 0 à "< value" (similitude avec les index dans les tableaux).
HS4 : n'utilises pas les parenthèses pour initialiser une variable (risque de confusion). Préfères les accolades (cf les variables):
| int i {}; // initialisation avec 0
int j { 123 }; // initialisation avec une valeur
|
Pour être plus précis, les objets héritant de QObject sont généralement déclaré comme pointeurs, car Qt fonctionne avec un système de hiérarchie (objets parents/enfants). Cela a notamment l'avantage suivant : lors de la destruction d'un objet, ce dernier va automatiquement détruire tous ses objets enfants, sans que l'utilisateur n'ait besoin de soucier de quelque problème lié à la mémoire.
L'explication n'est pas fausse, mais peut porter à confusion.
Pour être précis : les QObject ont une sémantique d'entité, ce qui implique qu'ils ne sont pas copiables et être polymorphiques. Cela implique qu'on les manipules souvent par pointeurs. Et comme la gestion manuelle de la mémoire en C++ avec pointeur peut être chiante, Qt utilise un système de parent-enfants pour détruire automatiquement les QObject.
Pour les classes non-QObject, qui sont copiable et non-polymorphique, l'utilisation de pointeurs ne sert pas à grand chose.