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:
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];	}
 
};
- 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
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();
};
- 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
 
Armoire Arm;
Arm = new Armoire();
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
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
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.

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.