Funkcje wirtualnego przyjaciela dla klasy bazowej?
Jestem w trakcie nauki języka i to jest wątpliwość.
Czy można użyć funkcji wirtualnego przyjaciela? Nie wiem, czy to możliwe, nawet tego nie testowałem, ale może być przydatne w niektórych sytuacjach. Na przykład dla przeciążonego operatora << ().
DerivedClass dc;
BaseClass &rbc = dc;
cout << rbc;
Domyślam się, że jest to możliwe, ale nie jestem pewien, ponieważ funkcja znajomego nie jest zaimplementowana w projekcie klasy i teoretycznie nie jest jej częścią (choć w tym przykładzie koncepcyjnie ma sens, że operator << () powinien być metoda, ale ze względu na ograniczenia składniowe nie jest możliwe zaimplementowanie jej jako jednej).
EDYTUJ: mój problem związany jest z tym przykładem:
BaseClass bc;
DerivedClass dc;
BaseClass *pArr[2];
pArr[1] = bc;
pArr[2] = dc;
for (int i = 0; i < 2; i++)
cout << pArr[i];
w tej tablicy mieszanych obiektów chcę, aby dla każdego z nich był poprawny operator << ().