find_if + наследование???
У меня есть класс в котором перегруженн оператор на пример так
class A
{
public:
A(){};
virtual bool operator()(char *){printf("Find A\n");return false;};
virtual bool operator()(long){printf("Find A\n");return false;};
Далее я наследую его
class B: public A
{
public:
B(){};
B(char * tm):str(tm){};
bool operator()(char * ch)
{
printf("Find B\n");
return strcmp(str,ch)==0;
};
И где-то в коде пишу
B b("что ищем");
A *a=&b;
itVec=find_if(Vec.begin(),Vec.end(),*a);
НО почему вызывается оператор bool operator()(char *) класса а?