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) : Renvoietrue
si toutes les conditions sont vraies.
Exemple :(a > b) && (b > c)
-
||
(OU logique) : Renvoietrue
si au moins une des conditions est vraies.
Exemple :(a > b) || (b < c)
-
!
(NON logique / négation) : Renvoietrue
si 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
Vecteur
pour représenter un vecteur 2D avec des coordonnéesx
ety
. - 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.
À propos de pointerlab
pointerlab s’inspire des fonctions lambda en C++, symbole de code concis, flexible et performant. C’est cette philosophie, mêlant rigueur et modernité, que nous mettons au service des défis de nos clients.
Experts C++ et Qt, nous maîtrisons des technologies de pointe comme Qt, OpenGL, OpenCV et Unreal Engine 5 pour concevoir des solutions logicielles sur mesure et robustes. Présents dans des secteurs exigeants tels que la simulation 3D, le médical ou l’aéronautique, nous allions innovation et expertise pour relever les défis les plus complexes.
- Vous avez un projet ? Contactez-nous dès maintenant pour discuter de vos besoins et découvrir comment nous pouvons collaborer.
- Vous êtes ingénieur logiciel C++ ? Rejoignez-nous ! Découvrez nos opportunités ici.
- Envie d’échanger avec la communauté des passionnés de C++ ? Rejoignez le Discord C++ France : CPP France By pointerlab.