类成员函数作为回调使用示例

365直播电视版下载 🖌️ 2026-02-13 06:21:01 🎨 admin 👁️ 2821 ❤️ 149
类成员函数作为回调使用示例

在编写C++项目时,经常需要将类的某个成员函数作为回调函数使用,这里总结两个方法:

1.使用lambda表达式,将类成员函数二次封装后使用,代码示例:

#include

#include

class A {

public:

A(std::function callback):m_callback(callback)

{

}

int Run(int a)

{

return m_callback(a);

}

private:

std::functin m_callback;

};

class B {

public:

B()

{

m_a = std::make_shared([&](int a){return this->callback(a);});

}

int callback(int a){

std::cout << a << std::endl;

}

private:

std::shared_ptr m_a;

};

2.使用std::bind,将类成员函数封装后使用,代码示例:

#include

#include

class A {

public:

A(std::function callback):m_callback(callback)

{

}

int Run(int a)

{

return m_callback(a);

}

private:

std::functin m_callback;

};

class B {

public:

B()

{

m_a = std::make_shared(std::bind(&B::callback, this, std::placeholders::_1));

}

int callback(int a){

std::cout << a << std::endl;

}

private:

std::shared_ptr m_a;

};

相关文章

pdf编辑换行如何操作?如何旋转PDF页面?
365直播电视版下载

pdf编辑换行如何操作?如何旋转PDF页面?

📅 11-08 👁️ 1679
第七章 躯体感觉系统
手机365体育网站经常打不开

第七章 躯体感觉系统

📅 08-26 👁️ 8310