C++ 存储对象的引用';从函数中接收的方法
我能够将一个对象的非静态方法伪传递给另一个对象的函数。当我试图将该方法的引用存储到函数的对象中时,问题就出现了,我不知道怎么做C++ 存储对象的引用';从函数中接收的方法,c++,methods,C++,Methods,我能够将一个对象的非静态方法伪传递给另一个对象的函数。当我试图将该方法的引用存储到函数的对象中时,问题就出现了,我不知道怎么做 #include <iostream> #include <functional> class Dummy{ public: void runDummyArgs(int z){std::cout<<"TEST: "<<z<<std::endl;}; }; class Test{
#include <iostream>
#include <functional>
class Dummy{
public:
void runDummyArgs(int z){std::cout<<"TEST: "<<z<<std::endl;};
};
class Test{
public:
template<typename X , typename T>
void runTest(X* obj, T(X::* func), int z) { (obj->*func)(z); };
/* It works, but I would like to store (obj->*func) in this class as a reference to reuse it when it is needed. */
};
int main()
{
Dummy *a = new Dummy();
Test *b = new Test();
b->runTest(a, &Dummy::runDummyArgs, 99);
return 0;
}
#包括
#包括
类虚拟{
公众:
void runDummyArgs(intz){std::cout我将编写如下内容:
#包括
#包括
类虚拟{
公众:
void runDummyArgs(int z){std::是否要存储指向该单成员函数或任意类型的任何成员函数的指针?我应该指向任意类型的任何成员函数,因为发送方将是未知类。注意。旁注:您需要调整此示例以使其正常。未初始化的指针很糟糕。我应该放置哪些参数std::function?一般来说,在cpp文件中放入非琐碎的、特定于实现的详细信息。我的经验是,如果将来可能会对其进行修改,超过几行代码,或者需要引入额外的头文件,则可能应该将其从类定义中分离出来,并在不影响任何人的环境中实现其他。太棒了!!工作非常完美,这正是我需要的。可变值示例也很好!!!我没有找到任何解决方案…非常感谢!!!!!!
Test b([&a](int z){a.runDummyArgs(z);});
[&a]
(int z)
{a.runDummyArgs(z);}