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:
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
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 le fichier source de CtypeVerres;
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
#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;
 }
voici celui de CLunettes;
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
#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;
 }
et enfin voici celui de CBoitierLunettes, celui qui me pose probl�me:
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
#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;
 
 }
en effet, quand je compile, j'obtiens un erreur que je n'arrive pas � corriger:
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