Les references ..
DevGl
Messages postés
151
Statut
Membre
-
sambia39 Messages postés 610 Date d'inscription Statut Membre Dernière intervention -
sambia39 Messages postés 610 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
bon , mon but est d'écrire une fontion coincide qui me permet de savoir si deux vecteurs ont meme composantes , il faut faire cette fonction on utilisant une transmission par reference, j'ai pas su comment le faire , je l'ai fait a l'aide d'une transmission par valeur .
la class est nommée vecteur
d'abors c'est le fichier vecteur.h
EDIT: Ajout de la coloration syntaxique.
et voila , le programme me donne des resultats vai , mais ce que je dois faire , et de faire tout ca en utilisant une transmission par reference dans la fonction coicide , s'ils vous plait , comment ?
bon , mon but est d'écrire une fontion coincide qui me permet de savoir si deux vecteurs ont meme composantes , il faut faire cette fonction on utilisant une transmission par reference, j'ai pas su comment le faire , je l'ai fait a l'aide d'une transmission par valeur .
la class est nommée vecteur
d'abors c'est le fichier vecteur.h
#ifndef VECTEUR_H
#define VECTEUR_H
class vecteur
{
public:
vecteur(float c1=0.0 ,float c2=0.0,float c3=0.0){ x=c1 , y=c2 , z=c3;}
void coicide ( vecteur v2);
private:
float x;
float y;
float z;
};
#endif // VECTEUR_H
// Le fichier vecteur.cpp
#include "vecteur.h"
using namespace std ;
#include <iostream>
void vecteur::coicide(vecteur v2){
if(x==v2.x && y==v2.y && z==v2.z){
cout<<"les deux vecteurs sont coicide"<<endl;
}
else {
cout<<"les deux vecteurs ne sont pas coicide"<<endl;
}
}
//main
#include <iostream>
#include "vecteur.h"
using namespace std;
int main()
{
vecteur v1(1,2,3);
vecteur v2(1,2,4);
v1.coicide(v2);
return 0;
}
EDIT: Ajout de la coloration syntaxique.
et voila , le programme me donne des resultats vai , mais ce que je dois faire , et de faire tout ca en utilisant une transmission par reference dans la fonction coicide , s'ils vous plait , comment ?
A voir également:
- Les references ..
- Excel a rencontré un problème au niveau d'une ou de plusieurs références de formules - Forum Excel
- Il existe une ou plusieurs références circulaires - Forum Excel
- EXCEL : trouver une reference externe ✓ - Forum Excel
- Excel: Reference circulaire ✓ - Forum Excel
- Problème référence formule - Forum Excel
2 réponses
Bonsoir
Il n'est pas préférable d'écrire pour la fonction coïncide ainsi :
au lieu (ci-dessous) avec un accès direct a le variable privé (qui est pas conforme )
Bref, ça donnerait:
à bientôt
Il n'est pas préférable d'écrire pour la fonction coïncide ainsi :
bool f_Coincide( cVecteur *vY ){
if( (this->x == vY->f_GetX() ) && (this->y == vY->f_GetY()) && (this->z == vY->f_GetZ() ) )
return ( true );
else
return ( false );
}
au lieu (ci-dessous) avec un accès direct a le variable privé (qui est pas conforme )
void vecteur::coicide(vecteur v2){
if(x==v2.x && y==v2.y && z==v2.z){
cout<<"les deux vecteurs sont coicide"<<endl;
}
else {
cout<<"les deux vecteurs ne sont pas coicide"<<endl;
}
}
Bref, ça donnerait:
#include <iostream>
//Classe vecteur
class cVecteur;
class cVecteur{
public:
//Constructeur
cVecteur( void ){
this->x = 0;
this->y = 0;
this->z = 0;
}
//Destructeur
~cVecteur( void ){
this->x = 0;
this->y = 0;
this->z = 0;
}
//Fonction Coincide
bool f_Coincide( cVecteur *vY ){
if( (this->x == vY->f_GetX() ) && (this->y == vY->f_GetY()) && (this->z == vY->f_GetZ() ) )
return ( true );
else
return ( false );
}
//Quelque Setter
void f_SetX( float fX ){
this->x = fX;
}
void f_SetY( float fY ){
this->y = fY;
}
void f_SetZ( float fZ ){
this->z = fZ;
}
//Setter global
void f_SetGlobalVar( float fX, float fY, float fZ ){
this->x = fX;
this->y = fY;
this->z = fZ;
}
//Quelque Getter
float const f_GetX( void ){
return ( this->x );
}
float const f_GetY( void ){
return ( this->y );
}
float const f_GetZ( void ){
return( this->z );
}
private:
float x;
float y;
float z;
};
//Fonction Principale
int main( void ){
cVecteur vX;
cVecteur vY;
//Affectation
vX.f_SetGlobalVar(1,2,3);
vY.f_SetGlobalVar(1,2,3);
//cas 1
if( vX.f_Coincide(&vY) )
std::cout<< "Les elements coincide (Cas 1)" <<std::endl;
else
std::cout<< "Les elements coincide pas (Cas 1)" <<std::endl;
//Cas 2
vX.f_SetY(5);
if( vX.f_Coincide(&vY) )
std::cout<< "Les elements coincide (Cas 2)" <<std::endl;
else
std::cout<< "Les elements coincide pas (Cas 2)" <<std::endl;
return( 0 );
}
à bientôt
Bonjour,
Pour passer une référence, il faut passer l'adresse de l'objet comme paramètre de la fonction.
EDIT: Ajout de la coloration syntaxique.
Pour passer une référence, il faut passer l'adresse de l'objet comme paramètre de la fonction.
class vecteur
{
public:
vecteur(float c1=0.0 ,float c2=0.0,float c3=0.0){ x=c1 , y=c2 , z=c3;}
void coicide ( vecteur* lpv2); le paramètre est l'adresse ( la référence)
...
}
...
void vecteur::coicide(vecteur* lpv2){
if(x==lpv2->x && y==lpv2->y && z==lpv2->z){
cout<<"les deux vecteurs sont coicide"<<endl;
}
else {
cout<<"les deux vecteurs ne sont pas coicide"<<endl;
}
}
...
int main()
{
vecteur v1(1,2,3);
vecteur v2(1,2,4);
v1.coicide(&v2); // on passe l'adresse de v2
return 0;
}
EDIT: Ajout de la coloration syntaxique.