私は言語を学ぶ過程にあり、これは間違いありません。
仮想フレンド機能を使用することはできますか?それが可能かどうかはわかりません。テストもしていませんが、状況によっては役立つ可能性があります。たとえば、オーバーロードされた演算子<<()の場合。
DerivedClass dc;
BaseClass &rbc = dc;
cout << rbc;
私の推測では可能ですが、フレンド関数はクラス設計に実装されておらず、理論的にはその一部ではないため、わかりません(ただし、この例では、概念的には、operator <<()がメソッドですが、構文上の制限により、1つとして実装することはできません)。
編集:私の懸念はこの例に関連しています:
BaseClass bc;
DerivedClass dc;
BaseClass *pArr[2];
pArr[1] = bc;
pArr[2] = dc;
for (int i = 0; i < 2; i++)
cout << pArr[i];
この混合オブジェクトの配列では、それぞれに対して正しい演算子<<()を呼び出す必要があります。