永发信息网

怎样将类的成员函数作为参数

答案:2  悬赏:60  手机版
解决时间 2021-03-02 21:22
怎样将类的成员函数作为某个函数的参数进行传递,并且在该函数中递归调用这个类的成员函数~?
最佳答案
这里面涉及到一个call converntion的问题。首先,类的一般成员函数与普通的函数调用在调用方式上是有所区别的,当然具体的情况也和操作系统与编译器有关系。这应该是可以理解的,因为类的普通成员函数毕竟要作用于该类的某一个对象之上。我自己试了试,在windows的visual studio上,static的类成员函数才可以被当作函数指针传递,也就是其函数已经摆脱了类的某一个对象的限制:
class C {
public:
static int func(int i) {
if (i == 0) return 0;
cout << i << endl;
func(i - 1);
return 0;
}
};

void test(int(*func)(int i)) {
func(5);
}

int _tmain(int argc, _TCHAR* argv[])
{
test(&(C::func));
return 0;
}
当然,你可以想到这种方式的调用本身其实暗示了设计结构出了问题,并不值得提倡。
全部回答
public class test { public static int a=1;//静态成员变量 } //运行结果正常输出1,在java中静态成员变量能作为其他类的成员函数的参数 public class teststatic { public void test(int a){//测试方法test system.out.println(a);//相当于c++的cout<
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯