【发布时间】:2012-08-21 23:52:42
【问题描述】:
我正在学习这门语言,这是一个菜鸟疑问。
可以使用虚拟好友功能吗?我不知道这是否可能,我什至没有测试它,但它在某些情况下可能很有用。例如,对于重载的运算符
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];
在这个混合对象数组中,我希望为每个对象调用正确的运算符
【问题讨论】:
-
您应该更明确地说明您对虚拟朋友的含义。我的印象是,您的担忧实际上与友谊无关,而与虚拟关系不大。是否可以根据隐式
this以外的函数的参数应用动态调度? -
@David rodríguez 抱歉,我会尝试更具体一点。
标签: c++ class function virtual friend