Problème de constructeur ?
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:
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:
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:
1 2 3
|
Armoire Arm;
Arm = new Armoire(); |
Et voilà ce qui se passe lors de la compilation de mon application:
Code:
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 :king: , 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 :lol:
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.