Salut,
Bon, quand tu écris du code dans genre de
1 2 3 4 5 6 7 8 9 10 11
|
int i;
int j;
/* ...*/
if(i==j)
/*...*/
/*ou */
if(i>j)
/* ou */
i+=j;
/* etc */ |
les caractere "==" ">" "+=" s'appellent des opérateurs, ou, si tu préferes, des signes qui permettent d'effectuer certaines opérations entre deux valeurs de meme type (car il est illogique de comparer une pomme à une orange
) .
==, >, >=, <, <=, != sont des opérateurs de comparaison, +,-,*,/ et % sont des opérateur mathématiques (je présumes que c'est d'ailleurs de là que vient le terme
et &&, ||,^ sont des opérateur logiques
Le terme en anglais est sensiblement identique au terme francais: operator.
Et, si tu y penses un tout petit peu, comment appellerais tu "un groupe d'instructon permettant d'effectuer certaines opérations" 
La réponse tient en un seul mot: une fonction

Ces opérateurs sont disponibles, en natif, pour les types de base ((unsigned) char, (unsigned) short, (unsigned) int, float, double (double), (unsigned) long).
Seulement, voilà, ainsi que l'on a essayé de te le faire comprendre, l'ordinateur est encore plus bete que ma niece de 6 ans, et, si tu ne lui dit pas comment comparer ou effectuer une addition sur une structure, il ne saura purement et simplement pas comment s'y prendre 
Quand tu écris un test du genre de
if(s1.a==s2.a && s1.b==s2.b)
tu lui fournis justement la manière qui lui permet de comparer les deux structures (s1 et s2), de meme type, pour savoir si elles sont égales 
Si tu as compris ce que je viens d'écrire, et si tu es d'accord avec tout cela - mais je ne vois pas pourquoi tu ne serais pas d'accord avec ca
- tu comprendra pourquoi il est, quelque part, logique que quand tu veux créer un opérateur (quel qu'il soit) pour une structure donnée, que tu le fasse en lui donnant la meme forme qu'une fonction 
Maintenant, les opérateurs de comparaison fournissent un résultat booléen: c'est vrai ou faux (true ou false).
Il existe un type particulier en C++ qui permet de représenter ce résultat booléen: bool.
Il est donc tout aussi logique que, le type de retour de ta fonction/operateur qui va comparer l'égalité entre deux structures d'un meme type soit... bool 
(Avis au puristes: je sais tres bien avoir pris quelques raccourcis et n'avoir pas forcément utilisé les bons termes... l'idée était essentiellement de permettre au P.O. de comprendre
)
Partager