关于men_fun函数的,求达人解释
class Employee
{
string first,last;
public:
Employee(const string& fn="John",const string& ln="Smith"):first(fn),last(ln){}
virtual void print() const
{
cout<<"First name:"<<first<<",Last name"<<last<<endl;
}
virtual ~Employee(){}
};
class Manager:public Employee
{
int level;
list<Employee*> subordinates;
public:
Manager(const string& fn="Ivan",const string& ln="Stedwick",int lvl=1):Employee(fn,ln),level(lvl){}
void print()
{
cout<<"Manager level:"<<level<<" ";
Employee::print();
cout<<"Supervises:"<<endl;
for_each(subordinates.begin(),subordinates.end(),std::mem_fun(&Employee::print));
cout<<endl<<endl;
}
void addstaff(Employee& staff)
{
subordinates.push_front(&staff);
}
void addstaff(Employee* staff)
{
subordinates.push_front(staff);
}
};
编译时总是有错,error C2664: 'mem_fun' : cannot convert parameter 1 from 'void (__thiscall Employee::*)(void) const' to 'void (__thiscall Employee::*)(void)'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
有人能帮帮我么,我用const_cast试过,但都没成功