Il nest pas permis de faire des cycles en cours de dérivation ; cest-à-dire quune classe C
ne peut pas hériter delle-même, ni directement, ni indirectement par lintermédiaire dune ou plusieurs autres classes.
Par contre, si deux classes A
et B
dérivent toutes deux dune classe Z
, on peut dériver une classe C
de A
et B
; la classe comprendra alors deux instances de Z
. (Il faut alors utiliser l'opérateur de résolution de portée :: pour distinguer les membres hérités par l'intermédiaire de l'une ou l'autre.)
Assez étrangement, si une classe B
dérive de A
, on ne peut pas dériver une classe C
de A
et B
; le compilateur affiche une erreur (Error : 'A' is inaccessible because also in 'B', 'A' est inaccessible car également dans 'B').
Précédent | Sommaire | Suivant |