[conception] vecteur de classes
Bonjour à tous, et bonnes fêtes :chin:
j'ai un petit problème de conception à vous poser. Je pense qu'il doit être relativement courant, mais je ne parviens pas à trouver une solution satisfaisante. Alors je me disais que peut-être vous auriez des proposition à me faire concernant l'architecture.
Je cherche à construire un système tel que:
1/ J'ai une Interface (classe abstraite) I
2/ J'ai une série d'objets A1, A2, A3, ... qui héritent de I
3/ J'ai une classe C qui possède un tableau (vector) d'objets A1, A2, etc..., dont chaque élément sera une instance de A1, A2, ... ce vecteur sera noté V.
Mes questions:
- Je voudrais avoir 2 fichiers par classe (Interface.cpp + Interface.h, A1.cpp + A1.h, ..., C.cpp + C.h) quel fichier va inclure quel fichier?
- D'un point de vue de l'architecture, comment s'organiser pour que la création de V soit possible?
P.S: il y a peut-être des erreurs sur les termes utilisés dans mon message, car je ne suis pas encore très sûr de moi en poo.
Re: [conception] vecteur de classes
Citation:
Envoyé par r0d
Je cherche à construire un système tel que:
1/ J'ai une Interface (classe abstraite) I
2/ J'ai une série d'objets A1, A2, A3, ... qui héritent de I
3/ J'ai une classe C qui possède un tableau (vector) d'objets A1, A2, etc..., dont chaque élément sera une instance de A1, A2, ... ce vecteur sera noté V.
Mes questions:
- Je voudrais avoir 2 fichiers par classe (Interface.cpp + Interface.h, A1.cpp + A1.h, ..., C.cpp + C.h) quel fichier va inclure quel fichier?
En général, le .cpp inclus le .h correspondant (et je te conseille de faire en sorte que ce soit le premier .h inclus).
Les classes Ai héritent de I donc il faut que la définition de I soit disponible, donc les Ai.h incluent Interface.h.
C.h devra aussi inclure Interface.h. On n'a pas assez d'information pour dire si d'autres inclusions sont nécessaires.
Citation:
- D'un point de vue de l'architecture, comment s'organiser pour que la création de V soit possible?
Je ne vois pas tellement le problème. Ce qui te bloque peut-être: V doit contenir des pointeurs vers I parce qu'il peut contenir des objets de type différent.