读书人

怎么将派生类型的成员函数的指针加入到

发布时间: 2012-03-23 12:06:21 作者: rapoo

如何将派生类型的成员函数的指针加入到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试一下,可能会帮的上忙

读书人网 >C++

热点推荐