Bonjour � tous,
je suis une d�butante et pour capitaliser ce que j'ai appris jusqu'ici j'ai cr�� trois classes.
- class CBoitierLunettes,
- classe CLunettes qui est un aggr�gat de CBoitierLunettes et la classe m�re de CTypeVerres
- classe CTypeVerres
voici la d�claration des trois classes:
voici le fichier source de CtypeVerres;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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 #ifndef LES_ENTETES_H_INCLUDED #define LES_ENTETES_H_INCLUDED #include <string> #include <iostream> //************************************************** class CLunettes; class CBoitierLunettes { private: std::string m_couleur; std::string m_nomEtiquette; int m_volume; CLunettes *CesLunettes; /* consequence de l'aggregation: permet au boitier quelles sont les lunettes qui lui sont dedies*/ public: CBoitierLunettes (std::string couleur, std::string nomEtiquette, int volume, CLunettes& a); void Afficher (); }; // ************************************************** class CLunettes { private: int m_prix; int m_dimension; std::string m_styleMode; CBoitierLunettes *CetteBoite; /* Bien que c'est CLunnettes qui est un aggregat de CBoiteLunnettes, j'aimerai qu'un pair de lunettes sache a quelle boitier il appartient*/ public: CLunettes (int prix, int dimension, std::string styleMode); void SetBoitierLunettes(); /* affecte aux lunnetes l'adresse memoire du boitier a qui il correspond */ void Afficher(); }; class CTypeVerres: public CLunettes { private: std::string m_natureVerres; float m_poids; public: CTypeVerres (std::string natureVerres, float poids, int prix, int dimension, std::string styleMode ); void Afficher(); }; #endif // LES_ENTETES_H_INCLUDED
voici celui de CLunettes;Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include "Les_entetes.h" using namespace std; //*********************************************** CTypeVerres::CTypeVerres (std::string natureVerres, float poids, int prix, int dimension, std::string styleMode ): CLunettes(prix, dimension, styleMode) { m_natureVerres = natureVerres; m_poids = poids; } //********************************************** void CTypeVerres::Afficher() { // affichage des attributs d'un objet CAutomobile cout << "Les caracteristiques de ces lunettes se trouve dans l'adresse memoire: " << this << ". Elles sont les suivantes:" << endl; cout << " nature du verre: " << m_natureVerres << " ; son poid: " << m_poids << endl; }
et enfin voici celui de CBoitierLunettes, celui qui me pose probl�me:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #include "Les_entetes.h" using namespace std; //*************************************************** CLunettes::CLunettes(int prix, int dimension, std::string styleMode) { m_prix = prix; m_dimension = dimension; m_styleMode = styleMode; } // *********************************************** void CLunettes::Afficher() { // affichage des attributs d'un objet CAutomobile cout << "Les caracteristiques de ces lunettes se trouve dans l'adresse memoire: " << this << ". Elles sont les suivantes:" << endl; cout << " nom du boitier: " << m_prix << " ; sa couleur: " << m_dimension << " ; son volume: " << m_styleMode << endl; }
en effet, quand je compile, j'obtiens un erreur que je n'arrive pas � corriger: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 #include "Les_entetes.h" using namespace std; //*************************************************** CBoitierLunettes::CBoitierLunettes(std::string couleur, std::string nomEtiquette, int volume, CLunettes& a) { m_couleur = couleur; m_nomEtiquette = nomEtiquette; m_volume = volume; CesLunettes = CLunettes& a; } // *********************************************** void CBoitierLunettes::Afficher() { // affichage des attributs d'un objet CAutomobile cout << "Les caracteristiques de ce boitier se trouve dans l'adresse memoire: " << this << ". Elles sont les suivantes:" << endl; cout << " nom du boitier: " << m_nomEtiquette << " ; sa couleur: " << m_couleur << " ; son volume: " << m_volume << endl; // j'aimerai aussi afficher les caracteristique des lunettes qui lui sont debies CesLunettes = new CLunettes(); CesLunettes ->Afficher(); delete CesLunettes; }
C:\Users\hp user\Desktop\open_class_room\codage_aggregation\CBoitierLunettes.cpp||In constructor 'CBoitierLunettes::CBoitierLunettes(std::string, std::string, int, CLunettes&)':| C:\Users\hp user\Desktop\open_class_room\codage_aggregation\CBoitierLunettes.cpp|12|error: expected primary-expression before '&' token| C:\Users\hp user\Desktop\open_class_room\codage_aggregation\CBoitierLunettes.cpp||In member function 'void CBoitierLunettes::Afficher()':| C:\Users\hp user\Desktop\open_class_room\codage_aggregation\CBoitierLunettes.cpp|22|error: no matching function for call to 'CLunettes::CLunettes()'| C:\Users\hp user\Desktop\open_class_room\codage_aggregation\Les_entetes.h|36|note: candidates are: CLunettes::CLunettes(int, int, std::string)| C:\Users\hp user\Desktop\open_class_room\codage_aggregation\Les_entetes.h|26|note: CLunettes::CLunettes(const CLunettes&)| ||=== Build finished: 2 errors, 0 warnings ===|
C'est pr�cis�ment au niveau du codage de l�agr�gation. J'ai beau relu mes cours, je ne vois pas mes erreurs. Par la m�me occasion qui quelque peut me proposer un livre qui parle du passage de UML � C++ je suis partante.
Merci d'avance pour les personnes qui prendrons la peine de me r�pondre