6.9 il reste encore un minuscule petit détail

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.