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;
} 展开
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;
} 展开
1个回答
推荐于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”的成员
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询