Bonjour,
Voila, cela fait un moment que je bute sur un problème qui a l'air plutot simple.
Je désirerais créer deux objets :
- le premier est un conteneur contenant une liste du deuxième objet
- le deuxième objet est un objet quelconque mais possédant un pointeur vers son parent.
J'ai donc essayé de faire un petit essai :
parent.cpp et item.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include "parent.hpp"parent.hpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include "item.hpp"
item.hpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #ifndef PARENT_HPP #define PARENT_HPP #include <vector> #include "item.hpp" using namespace std; class Parent : public vector<Item>{}; #endif /* PARENT_HPP */
Cela compile donc très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #ifndef ITEM_HPP #define ITEM_HPP class Item {}; #endif /* ITEM_HPP */
Maintenant il suffirait suivant ce que je souhaiterai faire de rajouter un pointeur dans chaque item pour pointer ves le parent. Je commence donc par rajouter dans item.hpp un include vers parent.hpp
Mais la le code ne compile plus. Et j'ai l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #ifndef ITEM_HPP #define ITEM_HPP #include "parent.hpp" class Item {}; #endif /* ITEM_HPP */
Voila, je désirais faire comme cela car c'est en gros cette technique que j'utilisais en C#. Je créais le pointeur dans l'item et ensuite je surchargeais les méthodes d'ajout et de suppression d'item dans les parents pour qu'il affecte à l'item rajouté le nouveau parent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 In file included from item.hpp:4, from item.cpp:1: parent.hpp:9: erreur: Item was not declared in this scope parent.hpp:9: erreur: patron de l'argument 1 est invalide parent.hpp:9: erreur: patron de l'argument 2 est invalide
Donc je ne sais pas comment faire en C++. Si quelqu'un peut m'aider à résoudre mon problème de compilation ou peut m'orienter vers une autre technique plus utilisée en C++ ...
Merci d'avance.
Partager