załóżmy niektóre (starsze) kod, który by nie mógł współczuć, oświadczamużyciu siostra dziedziczenie
struct B{
public:
void f(){}
};
i załóżmy mieć
struct A{
public:
virtual void f()=0;
};
jest możliwe zrób Wezwanie podklasa B :: f bez jawne wywołanie f(), czyli zamiast
struct C: public A, public B{
void f(){
B::f();
}
};
mający coś
struct C:virtual public A,virtual public B{
};
(zauważ, że ta ostatnia klasa jest abstrakcyjna, dla kompilatora A :: f nie jest uwzględniany)
Co jest nie tak z 'B :: f()'? To jest właściwy sposób wywoływania 'B :: f()'. –
wyobraź sobie, że masz 100 funkcji;) –
Nie, nie ma możliwości, aby funkcje podstawowego elementu mogły * zaimplementować * czyste funkcje wirtualne dla innej klasy bazowej. To po prostu nie działa. To, co masz, jest w porządku. –