(. Bellek sızıntıları ile ilgili bir şey işaret etmeyin, yıkıcı sanal vs değil bu sadece bir test programı) Böyle bir hiyerarşi var Sağlar ki:std :: mem_fun kullanırken iki parametre nasıl iletilir?
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.
}
Eğlenceyi() yöntemi çağırmak nasıl ki std :: for_each kullanarak iki argüman alır Ben std :: mem_fun muhtemelen std :: bind2nd ile kullanmam gerektiğini düşünüyorum, ancak bunu nasıl yapacağımı anlayamıyorum. Bunu nasıl başaracağınıza dair bir ipucu var mı? Ben destek kullanmıyorum.
Yükseltme kullanmıyorsunuz tr1iniz yok mu? –