Disons que je hiérarchie comme ceci (Ceci est juste un programme de test S'il vous plaît ne pas pointer tout ce qui concerne les fuites de mémoire, destructor est pas etc virtuel.):Comment passer deux paramètres lors de l'utilisation de std :: mem_fun?
class I
{
public:
virtual void fun(int n, int n1) = 0;
};
class A : public I
{
public:
void fun(int n, int n1)
{
std::cout<<"A::fun():" <<n<<" and n1:" <<n1<<"\n";
}
};
class B : public I
{
public:
void fun(int n, int n1)
{
std::cout<<"B::fun():" <<n<<" and n1:" <<n1<<"\n";
}
};
int main()
{
std::vector<I*> a;
a.push_back(new A);
a.push_back(new B);
//I want to use std::for_each to call function fun with two arguments.
}
Comment puis-je appeler la méthode fun() qui prend deux arguments en utilisant le std :: for_each? Je pense que je dois utiliser std :: mem_fun probablement avec std :: bind2nd mais je ne suis pas capable de comprendre comment faire cela. Toute idée comment y parvenir? Je n'utilise pas de boost.
Si vous n'utilisez pas boost, vous n'avez pas de tr1? –