Si vous avez joué avec ce programme, vous avez sûrement essayé de faire :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <iostream>
#include "vecteur.h"
using namespace std;
int main(int argc, char** argv){
Vecteur vect1(1.0, 0.0, 0.0);
Vecteur vect2(1.0, 0.0, 2.0);
cout << "vect1 = " << vect1 << endl;
cout << "vect2 = " << vect2 << endl;
cout << "Produit scalaire : vect1*vect2 = " << vect1*vect2 << endl;
cout << "Produit vectoriel : vect1^vect2 = " << vect1^vect2 << endl;
return 0;
}
|
Sans la variable produitVectoriel que nous avions (à réaction) précédemment.
Et quand nous avez compilé, vous avez eut une magnifique erreur. Une erreur à laquelle vous ne vous attendiez pas.
Quand vous mettez un calcul dans un flux (entouré de <<) les opérateurs sont appelés dans l'ordre où il ont été écris.
Voici le programme qui fonctionne :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <iostream>
#include "vecteur.h"
using namespace std;
int main(int argc, char** argv){
Vecteur vect1(1.0, 0.0, 0.0);
Vecteur vect2(1.0, 0.0, 2.0);
cout << "vect1 = " << vect1 << endl;
cout << "vect2 = " << vect2 << endl;
cout << "Produit scalaire : vect1*vect2 = " << vect1*vect2 << endl;
cout << "Produit vectoriel : vect1^vect2 = " << (vect1^vect2) << endl;
return 0;
}
|
Notez les parenthèses autour du calcul pour effectuer le calcul avant l'opérateur de flux.
|