[Style] Paramètres d'un constructeur => Structure
[Question par procuration d'un mec n'ayant pas internet]
Bonjour, dsl mais le nombre de caractères limité du titre ne me permet pas de bien décrire ma question
En fait, je voudrais savoir si c'est une bonne idée d'utiliser une structure pour chaque classe, qui servirait à initialiser le constructeur.
Par exemple, au lieu de faire çà:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
class C
{
private:
int m_a;
int m_b;
int m_p;
//... + autres membres qui ne sont pas initialisés par l'utilsiateur de la classe...
public:
C(int a, long b, void* p);
};
...
C* c = new C(1, 2, NULL); |
.. Faire ceci :
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
|
struct C_Init
{
int a;
long b;
void* p;
};
class C
{
private:
int m_a;
long m_b;
void* m_p;
public:
C(const C_Init &init);
};
...
C_Init init;
init.a = 1;
init.b = 2;
init.p = NULL;
C* c = new C(init); |
L'intérêt serait de ne pas avoir à changer le prototype du constructeur en cas de modification des paramètres d'initialisation... et le fait d'avoir une sorte d'initialisation "en colonne" plutot que "en ligne". Enfin bref...
=> qu'en pensez-vous ? (effets indésirés, lourdeur, etc ? [rolkA: vraiment lourd je trouve])
=> avez-vous déjà vu cette méthode employée quelquepart ? Dans une librairie par exemple ?
Merci d'avance :wink: