Bonjour
J'ai un bout de code suivant:
D'après ce que j'ai compris, const_cast supprime le caractère constant d'un objet. Donc dans la ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 template <class T> class TauPtr { virtual bool operator == (const T* right) const; virtual bool operator == (T* right) const {return operator == (const_cast<const T*>(right));} virtual bool operator == (int right) const {return right == 0 && _ptr == 0;} // pour comparaison avec NULL ..}
On supprime le caractère const à right.
Code : Sélectionner tout - Visualiser dans une fenêtre à part (const_cast<const T*>(right));}
right est implicitement de type const à cause de const dans la déclaration d e l'opérateur == (ok?). Ensuite, on lui attribut le type const T* à right.
Pour moi, on fait une opération de const_cast, puis en fait l'opération inverse après.
En fait, je ne vois pas a quoi cette fonction sert, si ce n'est de lui supprimer le type const, pour appeler la fonction == (définie avant) qui prend l'argument const T*.
Merci
Partager