Différences entre les versions de « Programmation C++/Les types de base et les déclarations »

 
=== L'opérateur const ===
L'opérateur <code>const</code> placé devant une déclaration de variable décrit celle-ci comme constante; elle ne changera jamais peut importe les opérations qu'on luiêtre assignechangée.
 
'''Exemple : '''
int x = 2;
const int y = 2;
x += 1; // x recevra la valeur 3
y += 1; // Cette opération est interdite par un compilateur C++ conforme
y += 1; //y recevra la valeur 2
</source>
 
Dans cet exemple, nous déclarons deux variables x et y, chacune avec la même valeur. etLa opérationpremière assigné.variable Pourquoi(x) nepeut recoivent-ilsêtre pasmodifiée, lace mêmequi valeurn'est ?pas Parce-quela nouscas avonsde la déclaréseconde (y) commequi constante,est ledéclarée compilateurconst. n'auraLe pascompilateur l'autorisationrefusera pourtoute changeropération latenterait valeurd'en demodifier lason variable.contenu Attention,(opérations certaind'assignation compilateuret vousd'incrémentation empêcherons=, tout+=, simplement-=, de*=, compiler/=, !>>=, <<=, ++).
 
Il en va de même pour les objets. Un objet déclaré const ne pourra pas être modifié, c'est-à-dire que le compilateur refusera l'invocation d'une méthode non const sur cet objet.
 
'''Exemple : '''
<source lang="cpp">
class X {
public:
X() : valeur_(0) {}
explicit X(int valeur) : valeur_(valeur) {}
void annule() { this->valeur_ = 0; }
void init(int valeur) { this->valeur_ = valeur; }
int valeur() const { return this->valeur_; }
private:
int valeur_;
};
 
X x(2)
const X y(5);
x.annule(); // Ok
y.annule(); // Erreur de compilation.
</source>
 
Dans cet exemple, deux objets x et y ont été déclarés. Il est possible d'invoquer n'importe quelle méthode (const ou non) sur l'objet x, par contre seules les méthodes const peuvent être invoquées sur l'objet y puisqu'il est déclaré const.
 
=== L'opérateur sizeof ===
55

modifications