Bonjour,
Imaginons les classes suivantes :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class A { public: A(); std::vector<A> getChildren() const; private: std::vector<A> m_children; }; class B : public A { public: B(); void foo() const; void bar() const; }; |
J’aimerais faire quelque que chose comme ça :
1 2 3 4 5 | B b(); for (const B &child : b.getChildren()) { child.foo(); } |
Seulement ça va me retourner une erreur, ce qui est logique car la méthode getChildren()
me retourne un tableau de A
et non de B
.
D’où ma question, j’ai un programme avec plusieurs classes qui ont un comportement de nœud dans un arbre. J’aimerais donc que mes classes hérites d’une classe Node
mais, comme vu dans l’exemple ci-dessus, je bloque totalement. Est-ce possible ? Comment faire ça proprement ?
Merci à vous !
+0
-0