Odpowiedź jest krótka, że z Twojego stosu jak jest nie można wyskoczyć elementy jako elementy typu klasy pochodnej. Wstawiając je do stosu, masz w plasterkach do klasy elementów stosu. Oznacza to, że tylko ta część klasy podstawowej została skopiowana do stosu.
Można mieć stos wskaźników, jednak i wtedy można użyć dynamic_cast
pod warunkiem, że statycznie wiadomo klasa ma przynajmniej jedną funkcję virtual
członkowskim, lub jako średnia mówi, pod warunkiem, że statycznie wiadomo klasa jest polimorficzny .
Jednak na trzeciej i chwytającej ręce zamiast oprawy w stylu Java używana jest funkcja wirtualna we wspólnej klasie bazowej. Często działa po prostu bezpośrednio mieć taką funkcję. W przypadku bardziej skomplikowanych scenariuszy może być konieczne użycie modelu odwiedzającego (google it), ale w zasadzie chodzi o to, że funkcje wirtualne są obsługiwane w języku w bezpieczny sposób, aby uzyskać efekt downcastów.
Dzięki za pomoc. – ron