Witam.
Mam następujący problem:
class Bazowa{};
class Pochoda: public Bazowa {};
void funkcja(Bazowa *& v) {}; //przekazuje referencje na wskaźnik
main()
{
Bazowa *b = new Bazowa();
Pochodna *p = new Pochodna();
Bazowa *bp = new Pochodna();
funkcja(b); //jest ok
funkcja(p); // niestety zgłasza błąd - nie można przekonwetrować typu Pochodna * na Bazowa *&
funkcja(pb); //znowu jest ok, ale korzystanie ze wskaźnika pb jest niewygodne, jeśli chce się dostać do pól klasy pochodnej
}
Wie ktoś jak to elegancko obejść? Rzutowanie podczas przekazywania parametru do funkcji niestety nie pomaga.
Edit
O dziwo udał mi się to załatwić rzutując w stylu (Bazowa *&)p zamiast (Bazowa *)p (co, wydawało by się, powinno działać). Jeśli nie wynikną jakieś inne, związane z tym problemy, to możliwe że problem się rozwiązał :)