Factorisation du code des constructeurs
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 :
Code:
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
...
}
...
}; |
Quelle la meilleure solution pour factoriser le code partag� ?
Cas 1 :
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
| 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
...
}
...
}; |
Cas 2:
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
| 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
...
}
...
}; |
Merci ! ;)