Introduction
Les opérateurs en C++ sont des symboles qui permettent d'effectuer des opérations sur des variables et des valeurs. Ils sont essentiels pour manipuler les données et contrôler les flux dans un programme. Cet article explore les opérateurs arithmétiques, relationnels, logiques, et d'affectation, avec une introduction aux opérateurs de surcharge.
1. Les opérateurs arithmétiques
Les opérateurs arithmétiques permettent d'effectuer des calculs mathématiques de base.
| Opérateur | Description | Exemple |
|---|---|---|
+ |
Addition | a + b |
- |
Soustraction | a - b |
* |
Multiplication | a * b |
/ |
Division | a / b |
% |
Modulo (reste de division) | a % b |
Exemple simple :
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 3;
cout << "Addition: " << (a + b) << endl;
cout << "Modulo: " << (a % b) << endl;
return 0;
}
2. Les opérateurs relationnels
Les opérateurs relationnels permettent de comparer deux valeurs et renvoient un résultat booléen (true ou false).
Les opérateurs relationnels
Les opérateurs relationnels permettent de comparer deux valeurs et renvoient un résultat booléen (true ou false).
| Opérateur | Description | Exemple |
|---|---|---|
== |
Égal à | a == b |
!= |
Différent de | a != b |
> |
Supérieur à | a > b |
< |
Inférieur à | a < b |
>= |
Supérieur ou égal à | a >= b |
<= |
Inférieur ou égal à | a <= b |
Exemple simple :
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 10;
if (a < b) {
cout << "a est plus petit que b" << endl;
} else {
cout << "a est supérieur ou égal à b" << endl;
}
return 0;
}
3. Les opérateurs logiques
Les opérateurs logiques sont utilisés pour combiner des conditions ou inverser une condition.
&&(ET logique) : Renvoietruesi toutes les conditions sont vraies.
Exemple :(a > b) && (b > c)||(OU logique) : Renvoietruesi au moins une des conditions est vraies.
Exemple :(a > b) || (b < c)!(NON logique / négation) : Renvoietruesi la condition est fausse.
Exemple :!(a > b)
Exemple simple :
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 10, c = 15;
if ((a < b) && (b < c)) {
cout << "a est inférieur à b ET b est inférieur à c" << endl;
}
if ((a > b) || (b < c)) {
cout << "Une des deux conditions est vraie" << endl;
}
return 0;
}
4. Les opérateurs d'affectation
Les opérateurs d'affectation servent à assigner ou à modifier la valeur d'une variable.
| Opérateur | Description | Exemple |
|---|---|---|
= |
Affectation simple | a = b |
+= |
Addition et affectation | a += b |
-= |
Soustraction et affectation | a -= b |
*= |
Multiplication et affectation | a *= b |
/= |
Division et affectation | a /= b |
%= |
Modulo et affectation | a %= b |
Exemple simple :
#include <iostream>
using namespace std;
int main() {
int a = 10;
a += 5; // équivalent à a = a + 5
cout << "a après += 5 : " << a << endl;
return 0;
}
4. Les opérateurs d'affectation
Les opérateurs d'affectation servent à assigner ou à modifier la valeur d'une variable.
| Opérateur | Description | Exemple |
|---|---|---|
= |
Affectation simple | a = b |
+= |
Addition et affectation | a += b |
-= |
Soustraction et affectation | a -= b |
*= |
Multiplication et affectation | a *= b |
/= |
Division et affectation | a /= b |
%= |
Modulo et affectation | a %= b |
Exemple simple :
#include <iostream>
using namespace std;
int main() {
int a = 10;
a += 5; // équivalent à a = a + 5
cout << "a après += 5 : " << a << endl;
return 0;
}
6. Exercice pratique
Énoncé :
- Implémentez une classe
Vecteurpour représenter un vecteur 2D avec des coordonnéesxety. - Surchargez les opérateurs
+et-pour additionner et soustraire deux vecteurs. - Ajoutez une méthode pour afficher les coordonnées d'un vecteur.
Solution proposée :
#include <iostream>
using namespace std;
class Vecteur {
private:
float x, y;
public:
// Constructeur
Vecteur(float xVal, float yVal) : x(xVal), y(yVal) {}
// Surcharge de l'opérateur +
Vecteur operator+(const Vecteur& v) {
return Vecteur(x + v.x, y + v.y);
}
// Surcharge de l'opérateur -
Vecteur operator-(const Vecteur& v) {
return Vecteur(x - v.x, y - v.y);
}
// Méthode pour afficher les coordonnées
void afficher() const {
cout << "Vecteur (" << x << ", " << y << ")" << endl;
}
};
int main() {
Vecteur v1(3.0, 4.0), v2(1.0, 2.0);
Vecteur somme = v1 + v2; // Addition de vecteurs
Vecteur difference = v1 - v2; // Soustraction de vecteurs
cout << "Somme : ";
somme.afficher(); // Affiche : Vecteur (4.0, 6.0)
cout << "Différence : ";
difference.afficher(); // Affiche : Vecteur (2.0, 2.0)
return 0;
}
Conclusion
Les opérateurs en C++ offrent une grande flexibilité pour manipuler les données, comparer des valeurs, et écrire des conditions logiques complexes. La surcharge d'opérateurs ajoute une couche de personnalisation et de puissance pour travailler avec des objets.
Dans le prochain article, nous explorerons les références et pointeurs en C++, des concepts cruciaux pour manipuler directement la mémoire et optimiser vos programmes.
