Le mot-clé const
const se réfère toujours à ce qui est a gauche, sauf si c'est le premier terme, dans ce cas ca se réfère a ce qui est à droite
Les 2 lignes suivantes sont donc équivalentes:
Code:
type const maFonction();
Code:
const type maFonction();
elles indiquent que la valeur de retour est de type "type" mais constante.
Idem pour les pointeurs:
Code:
type const * maFonction();
ici, on indique qu'il s'agit d'un pointeur sur des
type const.
Code:
type* const maFonction();
ici, un pointeur constant sur
type que l'on peut modifier.
Code:
type const * const * maFonction();
ici, un pointeur sur un pointeur
const qui pointe sur des
type const.
Si c'est a droite d'une méthode :
Code:
1 2 3 4
| class A
{
type maFonction() const;
}; |
cela signifie qu'au sein de la méthode, this, au lieu d'être un pointeur sur A, sera un pointeur sur A
const, donc les champs seront
const.