Bonjour,
Je ne parviens pas à expliquer pourquoi ce programme tout simple ne fonctionne pas.
Code C++ : 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 class A { public: A(int value) { cout << "Appel au constructeur de A"; } }; class B : public virtual A { public: using A::A; }; int main(){ A *objet = new B(1); B *objet2 = new B(1); return 0; }
Si j'enleve "virtual", il n'y aucun problème.
Donc je souhaite comprendre pourquoi l'héritage virtuel pose un problème dans ce cas là.
Est il impossible d'appeler le constructeur d'une superclasse si on utilise l'héritage virtuel en C+11?
Merci à ceux qui pourront m'éclairer.
Partager