怎么将派生类型的成员函数的指针加入到list中
如何将派生类型的成员函数的指针加入到list中
基类shape中有一个static list <pfunc> m_listFunc;
成员函数为virtual shape* PraseCharacter(char c)= 0;
typedef shape* (*pfunc)(char c);
然后将子类的函数实现加入到这个list中
CShape::m_listFunc.push_back(std::mem_fun(CLine::PraseCharacter));
error说推演不出来
请问应该怎么写?
我用的是vc6sp6 winxpsp2.
求教了!
谢谢!
------解决方案--------------------
函数对象能给函数指针赋值么?
应该用类成员函数指针吧
或者用boost::functional
------解决方案--------------------
指针就是指针,加个函数指针就行了
------解决方案--------------------
我记得用std::mem_fun里面的参数如果是类的成员函数的话,这个函数的定义是不能有参数的,例:virtual shape* PraseCharacter(char c);
如果是virtual shape* PraseCharacter();可能可以,我没试过,LZ可以试一下。
如果是必须有一个参数的话,你把std::mem_fun改成std::bind试一下,可能会帮的上忙
基类shape中有一个static list <pfunc> m_listFunc;
成员函数为virtual shape* PraseCharacter(char c)= 0;
typedef shape* (*pfunc)(char c);
然后将子类的函数实现加入到这个list中
CShape::m_listFunc.push_back(std::mem_fun(CLine::PraseCharacter));
error说推演不出来
请问应该怎么写?
我用的是vc6sp6 winxpsp2.
求教了!
谢谢!
------解决方案--------------------
函数对象能给函数指针赋值么?
应该用类成员函数指针吧
或者用boost::functional
------解决方案--------------------
指针就是指针,加个函数指针就行了
------解决方案--------------------
我记得用std::mem_fun里面的参数如果是类的成员函数的话,这个函数的定义是不能有参数的,例:virtual shape* PraseCharacter(char c);
如果是virtual shape* PraseCharacter();可能可以,我没试过,LZ可以试一下。
如果是必须有一个参数的话,你把std::mem_fun改成std::bind试一下,可能会帮的上忙