Composition des objets
CHAPITRE 11
244
Segment s2 (bc)
-- origine
abscisse : 4, ordonnée : 5
-- extrémité abscisse : 7, ordonnée : 8
on deplace b
Segment s1 (ab)
-- origine
abscisse : 1, ordonnée : 2
-- extrémité abscisse : 14, ordonnée : 25
Segment s2 (bc)
-- origine
abscisse : 14, ordonnée : 25
-- extrémité abscisse : 7, ordonnée : 8
C++
Ici, par souci de briéveté, nous n’avons pas séparé la déclaration des classes de la définition de leurs méthodes. Ces dernières ont été définies « en ligne » directement dans les déclarations (voyez éventuellement l’exemple langage C++, page 202).
#include
using namespace std ;
// déclaration définition de la classe Point
class Point
{ public :
Point (int x, int y) { abs = x ; ord = y ; }
void deplace (int dx, int dy) { abs += dx ; ord += dy ; }
void affiche ()
{ cout << "abscisse : " << abs << ", ordonnée : " << ord << "\n" ;
}
private :
int abs, ord ;
} ;
// déclaration définition de la classe Segment
class Segment
{ public :
Segment (Point o, Point e) : origine (o), extremite (e)
// attention : syntaxe obligatoire pour appeler le constructeur de o et de e
{}
void affiche ()
{ cout << "-- origine " ; origine.affiche() ;
cout << "-- extrémité " ; extremite.affiche() ;
}
private :
Point origine, extremite ;
} ;
CHAPITRE 11
244
Segment s2 (bc)
-- origine
abscisse : 4, ordonnée : 5
-- extrémité abscisse : 7, ordonnée : 8
on deplace b
Segment s1 (ab)
-- origine
abscisse : 1, ordonnée : 2
-- extrémité abscisse : 14, ordonnée : 25
Segment s2 (bc)
-- origine
abscisse : 14, ordonnée : 25
-- extrémité abscisse : 7, ordonnée : 8
C++
Ici, par souci de briéveté, nous n’avons pas séparé la déclaration des classes de la définition de leurs méthodes. Ces dernières ont été définies « en ligne » directement dans les déclarations (voyez éventuellement l’exemple langage C++, page 202).
#include
using namespace std ;
// déclaration définition de la classe Point
class Point
{ public :
Point (int x, int y) { abs = x ; ord = y ; }
void deplace (int dx, int dy) { abs += dx ; ord += dy ; }
void affiche ()
{ cout << "abscisse : " << abs << ", ordonnée : " << ord << "\n" ;
}
private :
int abs, ord ;
} ;
// déclaration définition de la classe Segment
class Segment
{ public :
Segment (Point o, Point e) : origine (o), extremite (e)
// attention : syntaxe obligatoire pour appeler le constructeur de o et de e
{}
void affiche ()
{ cout << "-- origine " ; origine.affiche() ;
cout << "-- extrémité " ; extremite.affiche() ;
}
private :
Point origine, extremite ;
} ;
