Maison >développement back-end >C++ >Pourquoi ne puis-je pas accéder aux membres protégés de ma classe héritée lorsque j'utilise l'héritage de modèles ?
Visibilité des membres de la classe parent manquante dans la classe héritée
Lors de l'héritage d'une classe modèle, comme dans le cas d'unorderedArrayListType héritant de arrayListType, Les variables membres déclarées comme protégées dans la classe parent peuvent ne pas être accessibles dans la classe héritée. Cela peut entraîner des erreurs de compilation lors de la tentative d'accès à ces variables.
Dans le code fourni, le message d'erreur indique que la longueur et la liste des variables protégées dans arrayListType ne sont pas reconnues dans unorderedArrayListType. Pour résoudre ce problème, le compilateur doit être explicitement informé que ces membres sont hérités de la classe parent.
Il existe deux manières courantes d'y parvenir :
En déclarant ou en faisant précéder les références de membre avec this->, le compilateur peut établir la dépendance entre la classe héritée et le modèle de classe parent, permettant l'accès aux membres protégés de la classe parent.
Il est important de noter que le fait de ne pas résoudre correctement ce problème lors de la compilation peut entraîner des erreurs de symboles non définis lors de la phase de liaison de l'exécution du programme.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!