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 << ().

questionAnswers(5)

yourAnswerToTheQuestion