c++ - 如何将方法的引用作为参数传递

标签 c++

如何将方法的引用作为参数传递?它可能看起来像这样:

class Test
{
public:
    Test();

    void Bark();
    void Bark2();

    void TakesABark( void( &method )() );
}

// Start of procedure
Test::Test()
{
    this->TakesABark(Test::Bark);        
    this->TakesABark(Test::Bark2);
}

void Test::Bark()
{
}

void Test::Bark2()
{
}

// Receives a variety of references to methods
void Test::TakesABark( void( &method )() )
{
    // Calls a third party api that would look like this:
    // Barbera::DoThatThingILike(Test::Bark2);
}

最佳答案

class Test
{
public:
    Test();

    void Bark();
    void TakesABark(void (Test::*method)());
};


Test::Test()
{
    this->TakesABark(&Test::Bark);
}

关于c++ - 如何将方法的引用作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37713610/

相关文章:

c++ - OpenGL VBO 更新数据

c++ - 递归折叠参数包以解析占位符类型

C++。删除额外的连续重复字符串的最有效方法?

c++ - cURL 网址编码困惑

c++ - OS X dylib 指的是可执行文件本身

c++ - 如何使用 Visual C++ Win32 API 了解 Internet 连接详细信息

c++ - 当实例变量未初始化时,如何使 C++ 编译器产生错误或警告?

c++ - 在 C++ 中搜索树并输出到该节点的路径

c++ - 嵌套类的前向声明

c++ - 两个不同的 .cpp 文件中的 C/C++ 作用域