Cześć! Jestem samoukiem i uczę się c++ od paru miesięcy także przepraszam jeśli gdzieś używam złego nazewnictwa :) Potrzebuję porady odnośnie jednej rzeczy, więc nie przedłużając:
Mam abstrakcyjną klasę bazową A i powiedzmy parę klas pochodnych od niej, B, C i D. Tworzę tablicę wskaźników na typ klasy bazowej A. Do wskaźnika tworzę operatorem new obiekt B. Następnie za pośrednictwem wskaźnika na tym klasy bazowej A, chce się odwołać do metody w klasie B, która jest zadeklarowana tylko w tej klasie. Niestety podczas kompilacji wyskakuje komunikat, że klasa A "has no member named...", co poniekąd mnie nie dziwi. I teraz moje pytanie, czy jest jakoś możliwe odwołanie się do tej metody poprzez ten wskaźnik lub może inaczej? Do nowo utworzonego obiektu B mamy dostęp tylko przez wskaźnik ze względu na anonimowość obiektu B?
class A {...};
class B : public A {...};
A *przyklad[5];
przyklad[0] = new B;
przyklad[0]->metodaZadeklarowanaTylkoWKlasieB();
Wpadłem na pomysł aby po prostu napisać funkcję wirtualną w klasie A, a następnie w klasie pochodnej B ponownie ją zdefiniować. Ale czy to rozwiązanie będzie eleganckie? Ponieważ w klasie C i D pochodnej też od A, nie potrzebuję takiej funkcji, wyłącznie jest mi potrzebna w klasie B. To co wtedy zrobić z nią w klasach C i D? A może pokombinować jakoś z "przyjaźnią"?
Pozdrawiam i z góry dziękuję za pomoc :)