我正在学习语言,这是一个菜鸟怀疑。
可以使用虚拟好友功能吗?我不知道这是否可能,我什至没有测试它,但它在某些情况下可能很有用。例如,对于重载的运算符<<()。
DerivedClass dc;
BaseClass &rbc = dc;
cout << rbc;
我的猜测是有可能,但我不确定,因为在类设计中没有实现友元函数,理论上不是它的一部分(尽管在这个例子中,从概念上讲, operator<<() 应该是方法,但由于语法限制,不可能将其作为一个实现)。
编辑:我的担忧与这个例子有关:
BaseClass bc;
DerivedClass dc;
BaseClass *pArr[2];
pArr[1] = bc;
pArr[2] = dc;
for (int i = 0; i < 2; i++)
cout << pArr[i];
在这个混合对象数组中,我希望为每个对象调用正确的 operator<<()。