Bonjour à tous.
Ben voilà, je vais essayer de faire au plus court.
J'ai une classe appelée "Armoire", une classe appelée "Vecteur" et une dernière appelée "piecemuseeart".
Dans mon énoncé on me dit:
- créer une classe vecteur template, encapsulant un tableau dynamique
- tester la classe avec des int tout d'abord; et ensuite avec des objets piecemuseeart
- intégrer un tel vecteur dans une class armoire
Pour ce faire, j'ai procéder comme suit:
- tout d'abord, j'ai créé la classe vecteur, avec un système pour gérer les places vides:
- Ensuite, j'ai tenté d'insérer cette classe vecteur dans une classe "Armoire":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 template <class T> class Vecteur { private: T *Data; int nbrElem; int *Index; public: // constructeur // d'initialisation Vecteur(int n = 20 ); // destructeur ~Vecteur(void) { delete[] Data; } // methodes d'acces au variables et de construction d'index T& operator[](int i){ return *(Data+i);}; int placelibre(); void setindex(int N, int NV){ Index[N] = NV; } int getindex(int N){ return Index[N]; } };
- pour finir, j'ai essayé d'instancier cette dernière classe "Armoire" dans le main de mon application de la façon suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 #include<string.h> #include<stdlib.h> #include"./piecemusee/piecemusee.h" #include"./Vecteur.h" class Armoire { private: int nbr; Vecteur <piecemusee> *Vpm; public: // constructeur Armoire() { nbr = 0; Vpm = NULL; } // d'initialisation Armoire(int i); // destructeur ~Armoire(void); // methodes d'acces au Vecteur void setvalue(piecemusee& PM); void affiche(); };
Et voilà ce qui se passe lors de la compilation de mon application:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Armoire Arm; Arm = new Armoire();
La ligne 65 est la ligne ou je fait appel a mon constructeur par défaut. J'ai également essayer de lui passer en paramètre lors de l'appel du constructeur, une valeur qui serait donc la taille du vecteur à créer, mais rien ne change, le message d'erreur reste le même.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 creation de main.o main.cxx: In function int main(): main.cxx:65: error: invalid conversion from Armoire* to int main.cxx:65: error: initializing argument 1 of Armoire::Armoire(int) make: *** [Main] Erreur 1
Quelqu'un pourrait-il me dire d'où viendrait mon erreur? Ce serait super, parce que là, je ne vois absolument pas, et ça fait quelques jours que je suis dessus ( 3 je crois).
Si jamais l'erreur est une bétises incroyable, je pense bien que je ne saurais plus ou me mettre![]()
Quoiqu'il en soit, je vous remercie d'avance pour l'aide que vous pourrez m'apporter et vous souhaites une bonne fin de journée.
Richard_Sraing
p.s.: pour ceux qui auront eux le courage de lire ce message jusqu'au bout, je tiens à préciser que la classe piecemusee est la classe mère de la classe piecemuseeart.
Partager