Виртуальные функции друзей для базового класса?
Я в процессе изучения языка, и это сомнение нуб.
Можно ли использовать функцию виртуального друга? Я не знаю, возможно ли это, я даже не тестировал его, но он мог бы быть полезен в некоторых ситуациях. Например, для перегруженного оператора & lt; & lt; ().
DerivedClass dc;
BaseClass &rbc = dc;
cout << rbc;
Я предполагаю, что это возможно, но я не уверен, поскольку функция друга не реализована в дизайне класса и теоретически не является ее частью (хотя в этом примере концептуально имеет смысл оператор & lt; & lt; () должен быть методом, но из-за синтаксических ограничений невозможно реализовать его как единое целое).
РЕДАКТИРОВАТЬ: моя проблема связана с этим примером:
BaseClass bc;
DerivedClass dc;
BaseClass *pArr[2];
pArr[1] = bc;
pArr[2] = dc;
for (int i = 0; i < 2; i++)
cout << pArr[i];
в этом массиве смешанных объектов я хочу, чтобы для каждого вызывался правильный оператор & lt; & lt; ().