Folco (./376) :
Pour ce qui est des const, est-ce que c'est typiquement à employer dans les paramètres passés à une fonction ?
Oui, ça permet de réaliser des appels du genre « maFonction("ma chaîne"); », car les constantes littérales sont … constantes.
Ou aux tableaux de chaines de caractères ?
C’est-à-dire ?
Parceque si j'assigne ça à une variale, je ne pourrai plus la modifiée...
Effectivement, ce n’est pas à utiliser sur tes variables. C’est un mécanisme qui permet de protéger tes données. Utilise-le quand c’est nécessaire.
digression -> pourquoi spécialement en C++ ?
En C++ tu manipuleras souvent des objets (un peu comme des structures en C), et quand tu passeras un objet en argument à une fonction celle-ci aura accès à tout un tas de fonctions qu’elle pourra appliquer sur l’objet, elle pourrait donc faire des bêtises et casser ton objet. Pour éviter ça, tu peux utiliser une copie de ton objet (comme ça, même si la fonction la modifie, tu t’en fous). Mais c’est un peu lourd de recopier des grosses structures de données à chaque appel de fonction, donc une autre solution c’est que la fonction qui utilise un objet en argument garantisse qu’elle ne modifiera pas l’objet (comme ça, pas de risque de faire des bêtises, et puis ça permet plus simplement de contrôler l’accès aux objets), en prenant en paramètre un objet constant.
essemblent à ça : const Cercle & fabriqueUnCercle(const Point & centre, const Longueur & rayon);
Du coup, et c’est le bonheur du C++, la plupart des prototypes des fonctions rLà où d’autres langages permettent une écriture plus épurée :
Python :
def fabriqueUnCercle(centre, rayon):Java :
Cercle fabriqueUnCercle(Point centre, Longueur rayon);