Je suis perdu. J'ai une classe Editor
et une classe Controller
. Les classes WorkflowEditor
et WorkflowController
dérivent respectivement de Editor
et Controller
. La classe Controller
a un membre protégé Editor editor
et la classe WorkflowController
a un membre privé WorkflowEditor editor
(avec le même nom).Membres du cours et héritage
Modifier de EitanT:
est ici un code simplifié snipped pour illustrer ce que l'OP a décrit:
class Controller
{
Editor editor;
// ...
}
class WorkflowEditor : public Editor {
// ...
};
class WorkflowController : public Controller {
WorkflowEditor editor;
// ...
};
Mon application est un module avec interface graphique. En mode flux de travail, un ruban apparaît sur Lancer et un assistant s'affiche. En cliquant sur un bouton, une méthode de la classe Controller
est appelée. L'exécution se bloque car, à ce moment, Editor editor
classe membre de l'objet avec le type Controller
est mort. J'aimerais que le membre de la classe Editor editor
soit le même que le membre de la classe WorkflowEditor editor
(même nom).
En d'autres termes, si une classe A
a un membre de la classe B
et classe childA
(dérivé de A
) a un membre de la classe childB
(dérivé de B
), et membre de type childB
et B
ont même nom, ISN le membre "hérité"?
Il est difficile de voir ce que votre problème est sans le code réel. Réduisez le problème à un échantillon de code minimal et publiez-le (il est difficile à partir d'une description textuelle de comprendre si vous tenez le membre par pointeur/référence/valeur, ou combien d'occurrences de chaque objet traînent) –
@dlib _ ... le membre n'est-il pas hérité? _: bref, non. –
@EitanT: Une réponse plus longue mais plus correcte serait "oui". –