prob avec constructeur par copie et variable static
Bonjour!
voila mon prob j'ai crée une classe point avec une donnée static compteur qui s'incrémente ds le constructeur et se décrémente dans le destructeur.
lorque je déclare par exemple point a(2,5) et b(3,6) le compteur affiche 2 càd j'ai deux objets de type point mais si j'ecrit a(2,5) et pointb=a le compteur affiche 1 càd un suel objet je veux comprendre est dans le 2eme cas il y a qu'un seul objet ou deux a et b et merci
voila mon code source
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
| #include <iostream.h>
class point{
static int compteur;
int x ;
int y ;
public :
point (int &, int&) ;
void deplace (int, int) ;
void affiche () ;
~point () ;
} ;
int point::compteur=0;
point::point (int &abs, int &ord)
{x = abs ; y = ord ;compteur++;
cout<<"il existe "<<compteur <<" points "<<this<<endl ;
}
void point::deplace (int dx, int dy)
{ x = x + dx ; y = y + dy ;
}
void point::affiche ()
{ cout << "Je suis en " << x << " " << y << "\n" ;
}
point::~point () {compteur--;
cout<<"il existe "<<compteur <<" points"<<endl ;
} |
Code:
1 2 3 4 5 6 7
| /* -------- Utilisation de la classe point -------- */
main()
{
point a(10,55);
//b(4,5)
point b=a;
} |
je pense que c'est Resolu !!
merci a tous
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 32 33 34 35 36 37 38 39
|
#include <iostream.h>
class point{
int x ;
int y ;
public :
static int compteur;
point (int , int) ;
point(const point &p);
~point () ;
} ;
int point::compteur=0;
point::point (int abs, int ord) //: x(abs), y(ord),nom(p)
{
x = abs ; y = ord ;
compteur++;
cout<<"il existe "<<compteur <<" points "<<endl ;
}
point::point(const point &p)
{
this->x = p.x ; this->y = p.y ;
compteur++;
cout<<"il existe "<<compteur <<" points "<<endl ;
}
point::~point ()
{
compteur--;
cout<<"il existe "<<compteur <<" points"<<endl ;
}
main()
{
point a(10,55); //incrémente le compteur
point b=a;//incrémente le compteur
point c(a); //incrémente le compteur
a=b; //n'incréménte pas le compteur
cout<<"compteur ="<<point::compteur<<endl<<endl; // affiche le nombre d'ibjets
} |
ça marche trés bien !