Sauf qu'ici on est en C++ et pas en C. En C pour découper une fonction, s'il n'y à pas de fil directeur, on se retrouve avec des sous-fonctions avec 20 arguments ou des structures avec autant. En C++ (ou dans les autres langages objets), on peut mettre cette fonction dans une classe et stocker l'état dans les variables membres.
Sinon, oui, reinterpret_cast<int>(NULL) = 0; compile. valgrind gueulera peut être dans ce cas la, mais pour l'encodage, Qt ou pas, STL ou pas, il faudra toujours que le programmeur fasse gaffe.
Sinon je n'ai jamais dit qu'on ne peut se passer de l'allocation dynamique. tant mieux, puisqu'il faudrai alors se passer de tout les conteneurs STL. Par contre, se passer de delete, c'est possible et même recommandé. voir un delete en dehors d'un destructeur c'est généralement le signe d'un code qui n'est pas exception-safe, et voir un delete dans un destructeur c'est généralement un gachi de lignes puis-qu'utiliser un pointeur intelligent (ou un conteneur intelligent de pointeur) économisera des lignes et des erreurs. de base en C++ il y a déjà un pointeur intelligent (std::auto_ptr) même si tout seul il n'est pas très utile.
[^] # Re: Boost ? c'est quoi ?
Posté par Batchyx . En réponse à la dépêche Sortie de Boost 1.46. Évalué à 3.
Sauf qu'ici on est en C++ et pas en C. En C pour découper une fonction, s'il n'y à pas de fil directeur, on se retrouve avec des sous-fonctions avec 20 arguments ou des structures avec autant. En C++ (ou dans les autres langages objets), on peut mettre cette fonction dans une classe et stocker l'état dans les variables membres.
Sinon, oui, reinterpret_cast<int>(NULL) = 0; compile. valgrind gueulera peut être dans ce cas la, mais pour l'encodage, Qt ou pas, STL ou pas, il faudra toujours que le programmeur fasse gaffe.
Sinon je n'ai jamais dit qu'on ne peut se passer de l'allocation dynamique. tant mieux, puisqu'il faudrai alors se passer de tout les conteneurs STL. Par contre, se passer de delete, c'est possible et même recommandé. voir un delete en dehors d'un destructeur c'est généralement le signe d'un code qui n'est pas exception-safe, et voir un delete dans un destructeur c'est généralement un gachi de lignes puis-qu'utiliser un pointeur intelligent (ou un conteneur intelligent de pointeur) économisera des lignes et des erreurs. de base en C++ il y a déjà un pointeur intelligent (std::auto_ptr) même si tout seul il n'est pas très utile.