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 :
parent.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 */
item.hpp :
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 */
Cela compile donc très bien.

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

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 */
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
 
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
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.

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.