回调函数怎么设置自定义参数,求比较好的方法!
提供了一个回调函数,但是我想让用户可以传递自定义参数给回调函数,怎么弄 想了半天没想出来
[解决办法]
什么样的自定义参数??
干脆直接void *
然后用户传进来一个指针,自己去处理吧.
[解决办法]
这种问题通常有一种解决办法:定义一个类作为参数的基类,而传递给回调函数的参数都继承该基类,就是说参数的类型是该基类的派生类,只有满足这个条件,用户就可以自己定义回调函数的参数类型。
需要注意的是,在定义参数基类的时候可以设定一些虚函数(或者纯虚函数),用作接口函数。比如在基类中定义了一个COMPARE这样的纯虚函数,用来比较两个参数的大小。现在,你就可以定义一个复数类继承该基类,同时实现COMPARE这个函数即可,在回调函数中,你就可以使用COMPARE这样的函数了。
后面不管传入自己定义的何种类型的参数,由于都继承了上面说的那个基类,所以就都必须实现COMPARE,那么在回调函数中使用COMPARE函数时,总是不会有问题。
仅供参考。
[解决办法]