找回密码
 立即注册
首页 资源区 代码 函数指针和std::function在成员函数的使用区别 ...

函数指针和std::function在成员函数的使用区别

轩辕娅童 2025-6-4 19:57:34
成员函数,函数指针和 std::function 的区别很明显。成员函数的调用需要依赖于对象实例(即 this 指针),因此它们的处理方式与普通函数不同。以下是详细分析:
1. 成员函数指针


  • 定义:成员函数指针是指向类成员函数的指针,它的类型包括类信息。
  • 特点

    • 语法复杂,尤其是涉及多级指针和类型转换时。
    • 调用成员函数时需要显式传递对象实例(this 指针)。
    • 只能指向特定类的成员函数,不能指向普通函数或 lambda 表达式。

  • 适用场景:适用于需要直接调用特定类成员函数的场景。
示例代码:

[code]#include class MyClass {public:    int add(int a, int b) {        return a + b;    }};// 接受成员函数指针和对象实例作为参数的函数template void executeMemberFunc(T* obj, int (T::*func)(int, int), int a, int b) {    std::cout
您需要登录后才可以回帖 登录 | 立即注册