Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

question simple ?

3 réponses
Avatar
Adrien
Bonjour,

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 ?

Merci d'avance pour vos suggestions.
Adrien

3 réponses

Avatar
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

Avatar
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!

Avatar
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...


Thierry
--
http://www.escola.fr photos marionettes et textes