Exemples langages
287
$tabPoint [0] = new Point (0, 2) ;
$tabPoint [1] = new Pointcol (1, 5, 3) ;
$tabPoint [2] = new Pointcol (2, 8, 9) ;
$tabPoint [3] = new Point (1, 2) ;
for ($i = 0 ; $i < 4 ; $i++)
$tabPoint[$i]->affiche() ;
?>
Je suis un point
Mes coordonnées sont : 0 2
Je suis un point coloré de couleur 3
Mes coordonnées sont : 1 5
Je suis un point coloré de couleur 9
Mes coordonnées sont : 2 8
Je suis un point
Mes coordonnées sont : 1 2
C++
Comme nous l’avons dit, Il faut utiliser des objets dynamiques et déclarer virtual les méthodes qu’on
souhaite voir soumises à la ligature dynamique. Leur redéfinition peut mentionner virtual, mais ce n’est
pas une obligation.
#include
using namespace std ;
class Point
{ public :
Point (int x, int y)
{ abs = x ; ord = y ;
}
void affiche ()
{ identifie() ;
cout << " Mes coordonnees sont : " << abs << " " << ord << "\n" ;
}
virtual void identifie ()
// attention : virtual ici pour que
// identifie soit soumise à la ligature dynamique
{ cout << "Je suis un point \n" ;
}
private :
int abs, ord ;
} ;
class Pointcol : public Point // ne pas oublier public ici
{ public :
Pointcol (int x, int y, int c) : Point (x, y)
{ couleur = c ;
}
287
$tabPoint [0] = new Point (0, 2) ;
$tabPoint [1] = new Pointcol (1, 5, 3) ;
$tabPoint [2] = new Pointcol (2, 8, 9) ;
$tabPoint [3] = new Point (1, 2) ;
for ($i = 0 ; $i < 4 ; $i++)
$tabPoint[$i]->affiche() ;
?>
Je suis un point
Mes coordonnées sont : 0 2
Je suis un point coloré de couleur 3
Mes coordonnées sont : 1 5
Je suis un point coloré de couleur 9
Mes coordonnées sont : 2 8
Je suis un point
Mes coordonnées sont : 1 2
C++
Comme nous l’avons dit, Il faut utiliser des objets dynamiques et déclarer virtual les méthodes qu’on
souhaite voir soumises à la ligature dynamique. Leur redéfinition peut mentionner virtual, mais ce n’est
pas une obligation.
#include
using namespace std ;
class Point
{ public :
Point (int x, int y)
{ abs = x ; ord = y ;
}
void affiche ()
{ identifie() ;
cout << " Mes coordonnees sont : " << abs << " " << ord << "\n" ;
}
virtual void identifie ()
// attention : virtual ici pour que
// identifie soit soumise à la ligature dynamique
{ cout << "Je suis un point \n" ;
}
private :
int abs, ord ;
} ;
class Pointcol : public Point // ne pas oublier public ici
{ public :
Pointcol (int x, int y, int c) : Point (x, y)
{ couleur = c ;
}
