有没有"某些可满载运算符不适合作为虚函数"这种说法

有没有"某些可重载运算符不适合作为虚函数"这种说法?
有没有某些运算符不适合作为虚函数的说法?
我觉得我以前在那本书里看过,还是我记错了。
书上好像说,某些运算符不适合作为虚函数,可能会导致写隐藏的很深的问题。

我现在遇到一个这样的问题,所以想要用operator() 来解决

比如一个遍历数组的操作。那么基础的遍历操作是不变的。那么可变的部分只是针对遍历到的某个元素。
于是我想这样做

void foo(char *pBegin, char *pEnd, CharFun &refCharFun)
{
while(pBegin != pEnd)
{
refCharFun(*pBegin);
++pBegin;
}
}


这个CharFun 是一个基类
其operator()是个虚函数
那么针对特定的操作 只要派生这个类 然后定制一些操作

这样就省掉了针对不同的操作就要重新写一遍遍历操作的麻烦。

然后就想起了最上面的那个问题。
麻烦大家解答一下!谢谢!
实在想不起来是在哪看到过了。

------解决方案--------------------
实际上,所有运算符都不适合重载为虚函数形式,因为这形式实在是太拗口了,太有违直觉了
------解决方案--------------------
C++现在支持Lambda了,遍历数组,用Lambda写多好。

http://*.com/questions/7627098/what-is-a-lambda-expression-in-c11

这里比较了新旧两种写法。

void func3(std::vector<int>& v) {
  std::for_each(v.begin(), v.end(), [](int x) { cout << x });
}
------解决方案--------------------
运算符的重在实在没必要作成虚函数,或许换个思路还个想法更好!