classe vecteur3D, passage par référence
J'ai fait une classe vecteur3d qui permet de renvoyer le vecteur qui a la norme maximum. L'un est passage par référence, l'autre par valeur.
Qu'en pensez vous?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
class vecteur3d {
private:
float x,y,z;
public:
vecteur3d(float,float,float);
vecteur3d();
int vecteurnormmax(vecteur3d);
};
vecteur3d::vecteur3d(){
x=y=z=0;}
vecteur3d::vecteur3d(float t,float tt,float ttt){
x=t;y=tt;z=ttt;}
int vecteur3d::vecteurnormmax(vecteur3d v){
double norme1= sqrt(x*x+y*y+z*z);
double norme2= sqrt(v.x*v.x+v.y*v.y+v.z*v.z);
int a=1;
if (norme2<norme1) a=2;
return a;
}
void main(){
vecteur3d X(2,1,3);
vecteur3d Y(1,4,2);
cout<<Y.vecteurnormmax(X);
} |
Passage par référence:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
class vecteur3d {
private:
float x,y,z;
public:
vecteur3d(float,float,float);
vecteur3d();
int vecteurnormmax(vecteur3d * );
};
vecteur3d::vecteur3d(){
x=y=z=0;}
vecteur3d::vecteur3d(float t,float tt,float ttt){
x=t;y=tt;z=ttt;}
int vecteur3d::vecteurnormmax(vecteur3d *v){
double norme1= sqrt(this->x*this->x+this->y*this->y+this->z*this->z);
double norme2= sqrt(v->x*v->x+v->y*v->y+v->z*v->z);
int a=1;
if (norme2<norme1) a=2;
return a;
}
void main(){
vecteur3d X(2,1,3);
vecteur3d Y(1,4,2);
cout<<Y.vecteurnormmax(&X);
} |