Rozumiem pojęcie wirtualnego dziedziczenia, ale nigdzie nie mogłem znaleźć odpowiedzi na to pytanie. Powiedzmy, że masz klasę D, która dziedziczy klasę B i C. Obydwa B i C dziedziczą klasę A. Zatem możesz sprawić, że B i C wirtualnie odziedziczą A, aby uniknąć dwóch wystąpień A. Ale musisz określić dziedziczenie wirtualne zarówno w B, jak i C lub czy już tworzy tylko jedną instancję A, jeśli jedno z dwóch dziedziczy A, a drugie nie?Wirtualne dziedzictwo, jedna klasa wystarczy?
Dzięki
Również, §10.1/4 faktycznie to definiuje. –
@ftopbit: W jakiej kopii standardu? W C++ 03 jest to "10.1 [klasa.mi]/6"; w najnowszym dostępnym dokumencie roboczym, N3485, nadal jest to "10.1 [klasa.mi]/7". Nie mam żadnych standardowych kopii, gdzie jest to zdefiniowane w '10.1 [class.mi]/4'. –
Zawsze się zastanawiałem, dlaczego nie pozwalają na to, co OP pyta. Nie widzę żadnej logicznej przeszkody dla wirtualnego dziecka wskazującego na rodzica dziecka nie-wirtualnego. – enobayram