C/C++ 从一个类中调用另一个 未知类中的指定一个函数

#include<iostream>usingnamespacestd;classB{public:template<typenameT>voidtest(constT*... #include <iostream>
using namespace std;

class B
{
public:
template<typename T> void test(const T *tClass, void(T::*pFunc)(int))
{
tClass->pFunc(5);
}
};

class A
{
private:
int i;
public:
A(int iTmp)
{
i = iTmp;
}

void setIFunc(int iTmp)
{
i = iTmp;
}

void test()
{
cout << "A:" << i << endl;
B b;
b.test(this, &setIFunc);
cout << "A:" << i << endl;
}
};

int main()
{
A *a = new A(10);
a->test();

return 0;
}

从一个类中 调用另一个 未知类 中的指定一个 函数
#include <iostream>
using namespace std;

class B
{
public:
template<typename T> void test(T *tClass, void(T::*pFunc)(int))
{
(tClass->*(pFunc))(5);
}
};

class A
{
private:
int i;
public:
A(int iTmp)
{
i = iTmp;
}

void setIFunc(int tmp)
{
i = tmp;
}
答案

void test()
{
cout << "A:" << i << endl;
B b;
b.test(this, &A::setIFunc);
cout << "A:" << i << endl;
}
};

int main()
{
A *a = new A(10);
a->test();

system("pause");

return 0;
}
展开
 我来答
匿名用户
推荐于2016-07-20
展开全部
class B
{
public:
template<typename T> void test(/*const*/ T *tClass, void(T::*pFunc)(int))
{
tClass->pFunc(5);
}
};

class A
{
private:
int i;
public:
A(int iTmp)
{
i = iTmp;
}

void setIFunc(int iTmp)
{
i = iTmp;
}

void test()
{
cout << "A:" << i << endl;
B b;
//b.test(this, &setIFunc);
b.test(this, &A::setIFunc);
cout << "A:" << i << endl;
}
};
追问
错误	1	error C2039: “pFunc”: 不是“A”的成员
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式