Dziedziczenie a operator <<

Odpowiedz Nowy wątek
2019-08-13 19:03
0

Witam. Mam klasę bazową BAZOWA i klasę pochodną POCHODNA(dziedziczenie publiczne). Obie klasy posiadają funkcję zaprzyjaźnioną:

friend std::ostream & operator<<(std::ostream & os, const nazwa_klasy & rs);

tworzę teraz wskaźnik typu klasa BAZOWA ale przypisuje do niego adres obiektu klasy POCHODNA,
czyli:

POCHODNA nazwa_obiektu(argumenty);
BAZOWA* nazwa_wskaźnika=&nazwa_obiektu;

następnie wypisuje instrukcję:

std::cout<<*nazwa_wskaźnika;

i wyświetlają mi się dane z ciała funkcji zaprzyjaźnionej klasy BAZOWA, a nie z klasy POCHODA.
Jak to zmienić? To funkcja zaprzyjaźniona więc nie moge jej chyba zadeklarować jako wirtualna?

Pozostało 580 znaków

2019-08-13 19:06
Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0