Je me suis mis au C++ il n'y a pas longtemps (j'alterne le tuto de M@teo et le livre programmer en C++ de Claude Delannoy), pour info je sais programmer en Java et j'ai de "vieux" reflexes qui ne vont pas (pointeur et reference O_o). Venons en au fait : dans ma classe Point j'ai une methode static qui calcul la difference de coordonnées entre deux objets Point. ma methode est comme ca :
void Point::distanceEntreDeuxPoints(Point & p1, Point & p2)
{
float distanceAbs = p1.getAbs() - p2.getAbs();
float distanceOrd = p1.getOrd() - p2.getOrd();
std::cout << "La distance entre les deux points et x : " << distanceAbs << " et en y : " << distanceOrd << std::endl;
}
Mon probleme c'est le main ! car je créé deux point, mais ces deux points sont des pointeurs et je ne peux pas transmettre de pointeur à ma methode juste des references...
J'ai tester ca :
// Creation de deux points pour tester la methode statique
Point *pointA, *pointB;
Point & refA, refB;
refA = pointA;
refB = pointB;
pointA = new Point(1.0, 3.0);
pointB = new Point(45.1, 15.2);
pointA->afficheCoordonnees();
pointB->afficheCoordonnees();
Point::distanceEntreDeuxPoints(refA, refB);
delete pointA, pointB;
mais comme vous vous en doutez ca ne marche pas donc ma question est comment utiliser ma methode ? mon compilateur me dit qu'il n'y a pas d'operateur apte à faire la conversion et j'ai vu qu'on pouvais redefinir les operateurs (mais je n'en suis pas encore la )
Merci pour vos réponses
Le développement de jeu vidéo vous intéresse ? Parlons en !
Pourquoi utiliser des pointeurs?
Mauvaise désallocation.
Mauvaise initialisation de_la référence [ refB n'en est pas une ] .
Pas const correct.
> relis les tutoriels.
> corrige ton code.
> si tu n'arrives pas à le corriger reviens ici. Mais essaye, tu apprendras plus comme ça.
Methode static avec parametre par reference
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.