Bonjour,
Je me demande si de nos jours l'operateur [] a toujours sa place dans le langage C++.
Revenons tout d'abord sur l'origine de l'opérateur delete[].
Au début du C++ (avant sa première sortie) il fallait supprimé un tableau comme ceci :
Il fallait passer explicitement la taille du tableau a supprimer afin d'appeler les destructeurs de chacun des éléments du tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int* a = new int[3]; delete[3] a;
Mais de nos jours un simple appel a delete[] sans avoir a fournir explicitement le nombre de case du tableau peut déduire implicitement le nombre d'élément.
Cet opérateur devrait selon moi être retiré et implémenté delete de facon a ce que l'opérateur soit capable de déduire implicitement si l'argument est un tableau ou non.
De ce fait nous ne serons plus contraint de coder deux fois la même classe, une fois pour la version élement seul et une fois pour la version tableau.
Mais je me demande,
Pourquoi personne ne l'a proposé, un mécanisme serait-il mit en péril ?
Partager