const devant une fonction - C++ - Programmation
Marsh Posté le 18-11-2006 à 11:44:51
casafa a écrit : Voici le prototype d'une fonction membre: |
Ce n'est pas le prototype d'une fonction membre. Une fonction membre aurait plutôt le
prototype suivant :
const T& Class::get() const;
(note que le void pour dire "pas de paramètres" n'est utile qu'en C.)
Citation : que signifie le premier const ? |
const se rapporte à ce qui est situé immédiatement avant. Ici, il n'y a rien avant. Dans
ce cas, il se rapporte à ce qui est placé immédiatement après : ici T.
ceci est donc synonyme :
T const& Class::get() const;
Class::get() const retourne une référence constante sur un T.
Marsh Posté le 18-11-2006 à 13:02:26
Merci pour cette réponse mais:
1) Le "Class::" n'est pas obligatoire dans la classe elle-même...donc on peut considérer que c'est un prototype de fonction, non ?
2) "Class::get() const retourne une référence constante sur un T." Oui c'est bien ce que j'avait compris mais qu'est ce que ça signifie "référence constante sur un T" ?
Ca veut dire que T ne sera jamais modifier dans la classe Class ?
Marsh Posté le 18-11-2006 à 13:11:06
non, ça veut dire que tu ne pourras pas modifier le T à travers la référence renvoyée.
const string& toto() const;
const string& s = toto();
s.clear(); // interdit, je ne peux pas modifier s car c'est une const-référence
Marsh Posté le 18-11-2006 à 13:38:30
casafa a écrit : |
Je ne sais pas et tu peux considérer que ma réponse était inexacte. Je ne connais pas la définition exacte de ce qu'est un prototype de fonction. En revanche pour une déclaration ou une définition, c'est plus claire. Une déclaration a une portée; par exemple:
Code :
|
Marsh Posté le 18-11-2006 à 10:50:07
Bonjour,
Voici le prototype d'une fonction membre:
const T& get(void) const;
Que signifie le premier const ?
Merci...