Lorsquune classe hérite de plusieurs autres, il se peut que deux des classes de base aient des champs ou des méthodes ayant le même nom. Sil sagit dun champ dune part, et dune méthode dautre part, ou de deux méthodes mais avec des listes darguments différents, il ny a pas dambiguïté et le compilateur se débrouillera en fonction du contexte dutilisation.
Par contre, lorsquil sagit de deux champs, ou de deux méthodes ayant les mêmes arguments, le compilateur se trouve face à une ambiguïté insoluble. Pour la résoudre, il faut utiliser le nom dune des classes de base et lopérateur de résolution de portée. Par exemple, si les classes A et B ont toutes deux un champ x
, il faudra écrire :
C c;c.A::x = 0;
Lorsquil sagit de méthodes, il est préférable de recouvrir les méthodes de base en déclarant une méthode dans la nouvelle classe ayant le même nom et les mêmes arguments.
Précédent | Sommaire | Suivant |