c++

c++ std::bind怎样绑定成员函数

小樊
82
2024-11-20 22:02:00
栏目: 编程语言

在C++中,要使用std::bind绑定成员函数,您需要提供一个可调用对象(如对象实例或指针)和成员函数的指针。然后,您可以使用std::placeholders来表示成员函数参数的占位符。以下是一个示例:

#include <iostream>
#include <functional>

class MyClass {
public:
    void printHello(int times) {
        for (int i = 0; i < times; ++i) {
            std::cout << "Hello" << std::endl;
        }
    }
};

int main() {
    MyClass obj;
    auto boundFunction = std::bind(&MyClass::printHello, &obj, std::placeholders::_1);
    
    // 调用绑定的成员函数
    boundFunction(3);

    return 0;
}

在这个例子中,我们创建了一个名为MyClass的类,其中包含一个名为printHello的成员函数。我们使用std::bindprintHello函数绑定到obj对象上,并将times参数设置为std::placeholders::_1。这意味着当我们调用boundFunction时,它将使用提供的参数(在这种情况下是3)来调用printHello函数。

0
看了该问题的人还看了