请教高手 解决 函数的对象
class A
{
void cmd(函数和参数列表) //这里我该怎么做?
{
//做一些东西
call 函数;
}
void fun1(int a){};
void fun2(int a,int b){};
}
void main()
{
A a;
a.cmd(A::fun1,3); //我要调用fun1
a.cmd(A::fun2,3,5);// 我要调用fun2
}
[解决办法]
class A
{
public:
void something()
{//做一些东西
};
void fun1(int a){};
void fun2(int a,int b){};
void cmd(int a) //这里我该怎么做?
{
something();
fun1(a);
}
void cmd(int a,int b) //这里我该怎么做?
{
something();
fun2(a,b);
}
};
int main()
{
A a;
a.cmd(3); //我要调用fun1
a.cmd(3,5);// 我要调用fun2
return 0;
}
稍微变通一下,也可以解决问题,当然也可以通过可变参数加函数指针来解决,不够麻烦一些。
[解决办法]
template<class T>
void cmd(T) ;
[解决办法]
我想要用的函数指针和重载吧
首先加个public好调用。
其次重载cmd定义
typedef void (*func)(int) Func1;
typedef void (*func)(int, int) Func2;
void cmd(Func1, int);
void cmd(Func2, int, int);
=====================================================================
还可以用arg参数...来实现。
楼下大神补充
[解决办法]