Bonjour,
J'imagine qu'il y a déjà (eu) un « débat » sur ce sujet, mais je ne sais pas exactement où chercher...
Bref, pour le cas où l'intitulé ne serait pas assez explicite, j'aimerais savoir quelle est la meilleure façon (selon vous) d'écrire une classe dont plusieurs constructeurs partagent un bout de code :
- avec une classe-mère dont le seul but est de factoriser ce bout de code dans son propre constructeur ;
- écrire une fonction spécifique pour ce bout ce code.
Au cas où je ne serais toujours pas clair, je me retrouve dans cette situation :Quelle la meilleure solution pour factoriser le code partagé ?
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 class uneClasse { public: uneClasse(...) { // Un constructeur // Code partagé ... // Code spécifique ... } uneClasse(...) { // Un autre constructeur // Code partagé ... // Code spécifique ... } ... };
Cas 1 :Cas 2:
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 class _base { protected: _base(/* paramètres éventuels */) { // Code partagé ... } ~_base() { // Éventuellement du code } }; class uneClasse : private _base { public: uneClasse(...) : _base(...) { // Un constructeur // Code spécifique ... } uneClasse(...) : _base(...) { // Un autre constructeur // Code spécifique ... } ... };Merci !
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 class uneClasse { private: void init(/* paramètres éventuels */) { // Code partagé ... } public: uneClasse(...) { // Un constructeur init(...); // Code spécifique ... } uneClasse(...) { // Un autre constructeur init(...); // Code spécifique ... } ... };
Partager