Bonjour,
je code un test unitaire à propos de la relation de composition entre deux classes.
Mon code:
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
 
class Moteur {
    private:
        string type;
 
    public:
        Moteur(const string&);
		~Moteur();
};
 
Moteur::Moteur(const string& t):type(t)
{
	cout << "Xtor Moteur de type " << type << endl;
}
 
Moteur::~Moteur()
{
	cout << "Dtor Moteur de type " << type << endl;
}
 
class Voiture {
    private:
        string marque;
        Moteur moteur;  //implante la  composition un objet dans l’objet
    public:
		Voiture(const string& marque, const string& moteur);
		~Voiture();
};
 
Voiture::Voiture(const string& ma, const string& mo):marque(ma), moteur(mo)
{
	cout << "Xtor Voiture de marque " << ma << endl;
}
 
Voiture::~Voiture()
{
	cout << "Dtor Voiture de marque " << marque << endl;
}
 
int main()
{
	string marque("Volvo");
	string moteur("TX 617");
 
	Voiture V(marque, moteur);
	exit(EXIT_SUCCESS);
}
Je vois bien passer le constructeur du moteur puis celui de la voiture.
Par contre je ne vois jamais les cout dans les destructeurs. Pourtant il n'y a pas d'ambigüité quand V sort de sa portée, on devrait les traverser ...
Merci pour vos réponses.