【发布时间】:2013-09-05 20:35:53
【问题描述】:
我遇到了问题。 我有一个 A 类,还有一个从 A 继承的类,我们称它为 B 类。 我有虚拟功能。 我想通过 operator== 将 A 和 B 与另一个 C 类进行比较。 如果我想要一个 A 的列表,让我们在 stl 列表中说, 我必须使用指向 A 的指针,所以它看起来像:
list<*A> list;
我也有:C something
但是现在,我不能使用这个功能:find(list.begin(),list.end(),something)
因为我不能使用 operator == 作为指针(*)。
我找到了一个解决方案,但我认为它不是最好的,所以我的问题是——我能做得更好吗?
iter=list.begin();
for(iter;iter!=list.end();++iter)
{
if((*iter).operator==(something)
return ...
}
谢谢。
【问题讨论】: