如何封装函数调用
现在写的东西需要有这么个功能,就是我可能有个对象的指针,以及知道要调用它的什么函数,还有需要的参数, 然后希望并不是马上调用这个函数,而是分发到多个工作线程中去, 因此需要把这个调用包装成一个task对象(可以认为是一个委托). 这个task对象再去调用具体的函数, 但是现在有个问题, 目标函数可能是不同的类的不同成员函数,我不想针对每个类和函数都写特定的委托类, 而是想使用一个公共的基类,以及继承于这个基类的一个通用模板类, 在使用时 让模板类推导类类型,现在这个可以工作 但是知道了类类型,函数指针也得知道, 而不同的函数类型不同, 我的模板类的接口只能支持一种函数 比如void(*)() ,因为函数类型没法推导.我现在只希望有一种方法可以让我的一个模板支持有相同数量参数的函数,比如有1个参数的用一个模板 有2个参数的都用另一个模板.. 这样大部分时候都有现成的模板类可以使用
谁有好的想法可以讨论一下,如果解决了就更感谢了!
[解决办法]
看不懂,函数不能重载吗?
[解决办法]
用模版貌似可以
[解决办法]
或者这样,
设计一个 基类,(它甚至可以不做任何事情)
然后定义一个接口 void(*)() , 带上 virtual 属性,
然后从它派生出若干个这里涉及到的类类型,
在派生中重写 void(*)() 方法,
那么使用指针调用的时候,
根据多态规则,
会调用实际类型的成员方法 .....
[解决办法]
试试预设引用模板引数(Default Template Arguments)
[解决办法]
可以看看boost.function.
或者简单的看看以下post, 总有一点启发:)
http://community.csdn.net/Expert/topic/5505/5505013.xml?temp=.1893579
[解决办法]
google:
function object
[解决办法]
高难度啊 up
怎么封装函数调用
如何封装函数调用现在写的东西需要有这么个功能,就是我可能有个对象的指针,以及知道要调用它的什么函数,还
