Que vous appreniez le C++ ou que vous tra­vail­liez avec ce langage de pro­gram­ma­tion depuis longtemps, les opé­ra­teurs C++ cons­ti­tuent la base d’une pro­gram­ma­tion efficace. Même si la sig­ni­fi­ca­tion de certains opé­ra­teurs est intuitive, ce n’est pas le cas pour tous.

Que sont les opé­ra­teurs C++ ?

Fon­da­men­ta­le­ment, un opérateur est sim­ple­ment un caractère désignant une opération. Un opérateur peut faire référence à un opérande, mais fré­quem­ment, il réfère à plusieurs de ces derniers. Par con­sé­quent, dans la plupart des cas, vous obtenez une nouvelle valeur. Un exemple populaire sont les opé­ra­teurs arith­mé­tiques, par exemple « + » pour ad­di­tion­ner et « - » pour sous­traire deux nombres.

Les opé­ra­teurs C++ ne sont pas uni­que­ment dif­fé­ren­ciés sur la base de leur fonction. Le statut de l’opérateur ou son affinité sont également des critères im­por­tants de dif­fé­ren­cia­tion :

Con­ti­nuité Nombre d’opérandes Exemple
Opé­ra­teurs unaires Un opérande Négation logique : !var_name
Opé­ra­teurs binaires Deux opérandes Ajout : value1 + value2
Opé­ra­teurs ternaires Trois opérandes Condition if-else : condition? condition_true : condition_false

Priorité de l’opérateur

Comme pour les opé­ra­teurs arith­mé­tiques simples ou les opé­ra­teurs Python, il existe également une prio­ri­sa­tion des opé­ra­teurs C++. Celle-ci indique l’ordre dans lequel les opé­ra­teurs sont analysés. Pour les opé­ra­teurs arith­mé­tiques, les règles connues de point avant tiret s’ap­pli­quent. Cependant, il existe également d’autres règles que vous devez suivre pour les autres opé­ra­teurs C++.

if (var1 && var2 || var3) {
    do_something();
}
cpp

Dans l’exemple ci-dessus, l’ex­pres­sion logique après l’opérateur « if » est évaluée en premier. Ici encore, l’opérateur « && » (ET logique) a priorité sur l’opérateur « || » (OU logique). Ainsi, si l’éva­lua­tion de « var1 && var2 » ou l’éva­lua­tion de « var3 » renvoie à « true », l’appel de fonction de « do_something() » est exécuté.

Si vous voulez plus de certitude, vous pouvez également utiliser des pa­ren­thèses.

Surcharge des opé­ra­teurs en C++

Vous pouvez sur­char­ger la plupart des opé­ra­teurs C++. Cela signifie que vous pouvez attribuer un nouveau sens à un opérateur existant dans un contexte. Pour effectuer une surcharge d’opérateur en C++, vous devez utiliser le mot-clé «operator ». Ensuite, vous dé­fi­nis­sez l’opérateur C++ que vous souhaitez sur­char­ger. Sinon, la surcharge des opé­ra­teurs en C++ se comporte comme une surcharge de fonctions.

Pré­sen­ta­tion des opé­ra­teurs C++

Opé­ra­teurs arith­mé­tiques

Certains des opé­ra­teurs arith­mé­tiques C++ sont déjà connus depuis l’école. Ils fonc­tion­nent avec des nombres et renvoient ensuite un nouveau nombre. À deux ex­cep­tions près (les plus et moins que nous pouvons con­si­dé­rer comme des signes), les opé­ra­teurs arith­mé­tiques sont tous des opé­ra­teurs binaires.

Opérateur C++ Sig­ni­fi­ca­tion Exemple
+ Addition / plus unaire 6 + 4
- Sous­trac­tion / moins unaire 10 - 6
* Mul­ti­pli­ca­tion 10* 3
/ Division 20 / 10
% Modulo 21 % 2

Opé­ra­teurs d’af­fec­ta­tion

Comme dans la plupart des langages de pro­gram­ma­tion, les valeurs sont stockées dans des variables en C++. Pour affecter des valeurs spé­ci­fiques à de telles variables, vous avez besoin d’opé­ra­teurs spéciaux.

Opé­ra­teurs d’af­fec­ta­tion simples

Opérateur C++ Sig­ni­fi­ca­tion Exemple
= Af­fec­ta­tion simple x = 3
++ In­cré­men­ter x++
-- Dé­cré­men­ter x--

Opé­ra­teurs d’af­fec­ta­tion composés

En plus des opé­ra­teurs d’af­fec­ta­tion simples, le C++ prend également en charge les opé­ra­teurs composés. Il s’agit d’opé­ra­tions arith­mé­tiques ou « bit à bit » con­nec­tées si­mul­ta­né­ment à une af­fec­ta­tion de valeur :

int x = 4 ;
x += 2 ;
cpp

Dans l’exemple de code ci-dessus, la variable « x » reçoit une valeur numérique de 4 selon une af­fec­ta­tion simple. L’opérateur d’af­fec­ta­tion composé « += » est ensuite utilisé pour effectuer un ajout arith­mé­tique et stocker la valeur ré­sul­tante di­rec­te­ment dans « x ». L’af­fec­ta­tion se présente comme suit : « x = x + 2 ».

Opérateur C++ Sig­ni­fi­ca­tion Exemple
+= Somme et af­fec­ta­tion x += 2
-= Sous­trac­tion et af­fec­ta­tion x -= 2
*= Mul­ti­pli­ca­tion et af­fec­ta­tion x* = 2
/= Division et af­fec­ta­tion x /= 2
%= Modulo et af­fec­ta­tion x % = 2
&= Opérateur de bits ET et af­fec­ta­tion b &= 1
<<= Rotation à gauche et af­fec­ta­tion b <<= 1
>>= Rotation à droite et af­fec­ta­tion b >>= 1
^= Opérateur de bits OU et af­fec­ta­tion b ^= 1
` =` Opérateur de bits OU et af­fec­ta­tion

Opé­ra­teurs C++ logiques

Vous pouvez utiliser les opé­ra­teurs C++ logiques pour faire des com­pa­rai­sons de deux ex­pres­sions. À l’exception d’ex­pres­sion « non logique », qui fait toujours référence à une seule ins­truc­tion et annule sa vraie valeur, les opé­ra­teurs logiques sont binaires.

Opérateur C++ Sig­ni­fi­ca­tion Exemple
&& ET logique true && true
` `
! NON logique !true

Opé­ra­teurs de com­pa­rai­son

Les opé­ra­teurs de com­pa­rai­son sont des opé­ra­teurs C++ qui examinent la relation entre deux éléments ; ils sont donc binaires. À l’exception de la com­pa­rai­son à trois voies qui renvoie un nombre, la valeur renvoyée par tous les opé­ra­teurs de com­pa­rai­son C++ est une vraie valeur.

Opérateur C++ Sig­ni­fi­ca­tion Exemple
== Égalité a == b
!= Inégalité a != b
<= Inférieur ou égal à a <= b
>= Supérieur ou égal à a >= b
< Plus petit que a < b
> Plus grand que a > b
<=> Com­pa­rai­son à trois a <=> b

Ma­ni­pu­la­tion des bits

Pour pouvoir accéder ef­fi­ca­ce­ment à des bits in­di­vi­duels et améliorer la vitesse des pro­grammes, il existe des opé­ra­teurs de bits C++ qui sont par­ti­cu­liè­re­ment im­por­tants pour la pro­gram­ma­tion axée sur la per­for­mance.

Opérateur C++ Sig­ni­fi­ca­tion Exemple
& Opérateur de bits ET a & b
` ` Opérateur de bits OU
^ Opérateur de bits OU exclusifs a ^ b
~ Opérateur de com­plé­ment à 1 ~a
<< Opé­ra­teurs de décalage vers la gauche a << b
>> Opé­ra­teurs de décalage vers la droite a >> b

Gestion du stockage

C++ est un langage machine et propose donc un certain nombre d’opé­ra­teurs pour vous aider à gérer la mémoire.

Opérateur C++ Sig­ni­fi­ca­tion Exemple
& Détermine l’adresse & x
sizeof() Détermine les besoins en mémoire d’une ex­pres­sion sizeof(x)
new Crée un nouvel objet et retourne des pointeurs object* pointer = new object()
delete Supprime un objet delete object

Accès aux données pour les objets et les pointeurs

Les opé­ra­teurs C++ suivants vous aideront si vous souhaitez accéder aux membres in­di­vi­duels des objets ou aux zones de stockage des pointeurs.

Opérateur C++ Sig­ni­fi­ca­tion Exemple
* Opérateur d’in­di­rec­tion *pointer = 3;
. Opé­ra­teurs d’accès aux membres object.member = 2;
-> Opé­ra­teurs d’accès aux membres avec un pointeur objectpointer-> member = 2 ;
Aller au menu principal