#include<iostream>
class base{
public:
base(){std::cout<<"In base";}
};
class dv1:virtual private base {
public:
dv1(){std::cout<<"In DV1";}
};
class dv2:virtual private base {
public:
dv2(){std::cout<<"In DV2";}
};
class drv : public dv1, public dv2 {
public:
drv() {std::cout<<"Why is this working";}
};
int main() {
drv obj;
return 0;
}
Ist im Falle der virtuellen Vererbung nicht die Verantwortung für die meisten abgeleiteten Klassen, den Konstruktor aufzurufen? Hinweis: Hier wird Basis virtuell und privat geerbt.Wer ruft den Konstruktor in virtueller Vererbung auf?
und was ist der Ausgang erzeugen wird erwarteten? Wenn Sie etwas anderes erwartet haben, schlage ich vor, dass Sie zurückgehen und das Kapitel über die Erbschaft noch einmal durchgehen und versuchen, das zuerst zu verstehen. – Nim
Ich erwarte, dass es nicht kompiliert wird, da die Basis virtuell und privat abgeleitet wird. – Learner