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

打印 上一主题 下一主题

主题 835|帖子 835|积分 2505

成员函数,函数指针和 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
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表