Côté langages
265
C++
Les membres d’une classe disposent de trois statuts : private, protected et public. Le statut
protected correspond au statut protégé présenté précédemment. Mais, de plus, les dérivations
peuvent être également public, protected ou private (ce qui fait 9 combinaisons possibles pour
un membre donné). Le premièr mode de dérivation (public) correspond à ce qui a été présenté dans ce
chapitre ; les autres vont dans le sens d’une réduction des droits d’accès de la classe dérivée.
La dérivation s’écrit comme dans cet exemple :
class Pointcol : public Point
// ici Pointcol dérive «publiquement» de Point
Gestion des constructeurs
En Java, le constructeur de l’objet dérivé prend en charge l’ensemble de sa construction, mais il peut
appeler le constructeur de la classe de base par super (...).
PHP fonctionne comme Java, mais l’appel du constructeur de la classe de base est « préfixé » par
parent :
public function __construct (x, y, c)
{ parent::__construct (x, y)
// appel du constructeur de la classe de base
.....
}
En C++, la construction d’un objet d’une classe dérivée entraîne automatiquement le constructeur de la
classe de base. S’il est nécessaire de lui communiquer des paramètres, il existe une syntaxe particulière
de l’en-tête du constructeur de la classe dérivée comme dans :
Pointcol (int x, int y, int c) : Point (x, y) // constructeur de Pointcol
{ ..... }
C# fonctionnne comme C++, en remplaçant simplement le nom du constructeur de la classe de base par
base :
Pointcol (int x, int y, int c) : base (x, y) // constructeur de Pointcol
{ ..... }
Redéfinition de méthodes
Elle se déroule comme nous l’avons indiqué. Toutefois, en C#, il est nécessaire d’ajouter le terme new
dans l’en-tête de la méthode pour indiquer au compilateur qu’il s’agit effectivement d’une « nouvelle
définition ». Cette contrainte évite de redéfinir une méthode par erreur.
265
C++
Les membres d’une classe disposent de trois statuts : private, protected et public. Le statut
protected correspond au statut protégé présenté précédemment. Mais, de plus, les dérivations
peuvent être également public, protected ou private (ce qui fait 9 combinaisons possibles pour
un membre donné). Le premièr mode de dérivation (public) correspond à ce qui a été présenté dans ce
chapitre ; les autres vont dans le sens d’une réduction des droits d’accès de la classe dérivée.
La dérivation s’écrit comme dans cet exemple :
class Pointcol : public Point
// ici Pointcol dérive «publiquement» de Point
Gestion des constructeurs
En Java, le constructeur de l’objet dérivé prend en charge l’ensemble de sa construction, mais il peut
appeler le constructeur de la classe de base par super (...).
PHP fonctionne comme Java, mais l’appel du constructeur de la classe de base est « préfixé » par
parent :
public function __construct (x, y, c)
{ parent::__construct (x, y)
// appel du constructeur de la classe de base
.....
}
En C++, la construction d’un objet d’une classe dérivée entraîne automatiquement le constructeur de la
classe de base. S’il est nécessaire de lui communiquer des paramètres, il existe une syntaxe particulière
de l’en-tête du constructeur de la classe dérivée comme dans :
Pointcol (int x, int y, int c) : Point (x, y) // constructeur de Pointcol
{ ..... }
C# fonctionnne comme C++, en remplaçant simplement le nom du constructeur de la classe de base par
base :
Pointcol (int x, int y, int c) : base (x, y) // constructeur de Pointcol
{ ..... }
Redéfinition de méthodes
Elle se déroule comme nous l’avons indiqué. Toutefois, en C#, il est nécessaire d’ajouter le terme new
dans l’en-tête de la méthode pour indiquer au compilateur qu’il s’agit effectivement d’une « nouvelle
définition ». Cette contrainte évite de redéfinir une méthode par erreur.
