Heritage multiple et constructeurs
Bonjour
supposons les 4 classes suivantes
Code:
1 2 3 4 5 6 7 8 9 10
| class A
{
private:
string n;
string p;
int a;
public:
A(string, string, int);
...
}; |
Code:
1 2 3 4 5 6 7 8 9 10 11
|
class B: virtual public A
{
private:
...
public:
B(string nn, string pp, int aa):A(nn, pp, aa){ //autres initialisations
//sans passage d'arguments!!
}
..
}; |
Code:
1 2 3 4 5 6 7 8 9 10 11
| class c: virtual public A
{
private:
...
float z;
public:
C(string nn, string pp, string aa, float zz):A(nn, pp, aa) { //autres //initialisations avec et
//sans passage d'arguments!!
}
...
}; |
Code:
1 2 3 4 5 6 7 8 9
| class D: public B, public C
{
public:
D(string nn, string pp, string aa, string zz):
A(nn, pp, aa),
B(nn, pp, aa),
C(nn, pp, aa, zz)
....
}; |
bon jusqu'à la rien de méchant :mouarf:
Mais voici que je lis que
Citation:
dans ce cas de figure il est inutile de préciser les informations pour A au niveau des constructeurs B et C..
..mais du coup, on déclare comment les constructeurs de B et de C?
Car si je déclare le constructeur de B de cette sorte:
B(){...};
alors je ne pourrais jamais créer d'objet B complet car pour cela j'ai besoin des données que B doit hériter de A
... et si je déclare B de cette sorte:
B(string nn, string pp, int a);
alors je suis obligé lors de la définition de faire figurer un :A(nn, pp, aa).
Alors ma question c'est: est ce qu'il est utile ou non de préciser les informations de la class Mère au niveau des constructeurs B et C?
Si non, alors comment faire pour déclarer / définir les constructeurs de B et de C en sorte qu'on puisse créer des objet B et C pouvant hériter de A .. mais sans pour autant préciser les informations pour A au niveau des constructeurs B et C
:aie: