J'ai un petit problème que je ne sais pas tourner en C++ et qui pourtant
semble assez simple...
Soit une classe A qui contient une méthode Affiche().
Soit une classe G qui est une sorte de conteneur de A.
une instance "a" de A peut vivre soit indépendemment sa vie d'objet, soit
être gérée par une instance g de G.
J'aimerais cependant que la méthode Affiche() de a se comporte différemment
lorsque a est "gérée" par g, et appelle une autre méthode de g à la place.
Lorsque je j'essaie d'implémenter ça, je tombe en général sur le problème
que A doit être définie avant G (car G est un conteneur de A). Mais A doit
savoir appeler une méthode de G par exemple si on donne à 'a' un pointeur
vers 'g' lorsque la gestion de 'a' est déléguée à 'g'.
1) Comment faire ? ( de préférence avec au moins une solution qui n'utilise
pas Boost car j'aimerais comprendre et la librairie boost ressemble
surtout à de la magie pour moi).
2) question subsidiaire: est-ce un mauvais design dans l'absolu ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Etienne Rousee
"Adrien" a écrit ...
Lorsque je j'essaie d'implémenter ça, je tombe en général sur le problème que A doit être définie avant G (car G est un conteneur de A). Mais A doit savoir appeler une méthode de G par exemple si on donne à 'a' un pointeur vers 'g' lorsque la gestion de 'a' est déléguée à 'g'.
Prototypes de classes:
class A; class G;
class A { ....... };
class G { ....... };
--
Etienne
"Adrien" <adrien-news@wizzi.net> a écrit ...
Lorsque je j'essaie d'implémenter ça, je tombe en général sur le problème
que A doit être définie avant G (car G est un conteneur de A). Mais A doit
savoir appeler une méthode de G par exemple si on donne à 'a' un pointeur
vers 'g' lorsque la gestion de 'a' est déléguée à 'g'.
Lorsque je j'essaie d'implémenter ça, je tombe en général sur le problème que A doit être définie avant G (car G est un conteneur de A). Mais A doit savoir appeler une méthode de G par exemple si on donne à 'a' un pointeur vers 'g' lorsque la gestion de 'a' est déléguée à 'g'.
Prototypes de classes:
class A; class G;
class A { ....... };
class G { ....... };
--
Etienne
Adrien
Etienne Rousee wrote:
Prototypes de classes:
class A; class G;
Ok en effet ça marche. J'avais essayé ce prototype mais en laissant toutes les fonctions inline, et là ça ne marche pas...
Merci!
Etienne Rousee wrote:
Prototypes de classes:
class A;
class G;
Ok en effet ça marche. J'avais essayé ce prototype mais en laissant toutes
les fonctions inline, et là ça ne marche pas...
Ok en effet ça marche. J'avais essayé ce prototype mais en laissant toutes les fonctions inline, et là ça ne marche pas...
Merci!
thierry escola
Ok en effet ça marche. J'avais essayé ce prototype mais en laissant toutes les fonctions inline, et là ça ne marche pas...
bonjour
ça ne doit pas marcher en fonctions inline car il faut que la fonction soit déjà définie avant que le compilateur passe sur son utilisation. Et si c'est réciproque...
Ok en effet ça marche. J'avais essayé ce prototype mais en laissant toutes
les fonctions inline, et là ça ne marche pas...
bonjour
ça ne doit pas marcher en fonctions inline car il faut que la fonction
soit déjà définie avant que le compilateur passe sur son utilisation.
Et si c'est réciproque...
Thierry
--
http://www.escola.fr photos marionettes et textes
Ok en effet ça marche. J'avais essayé ce prototype mais en laissant toutes les fonctions inline, et là ça ne marche pas...
bonjour
ça ne doit pas marcher en fonctions inline car il faut que la fonction soit déjà définie avant que le compilateur passe sur son utilisation. Et si c'est réciproque...