函数指针和std::function在成员函数的使用区别
成员函数,函数指针和 std::function 的区别很明显。成员函数的调用需要依赖于对象实例(即 this 指针),因此它们的处理方式与普通函数不同。以下是详细分析:1. 成员函数指针
[*]定义:成员函数指针是指向类成员函数的指针,它的类型包括类信息。
[*]特点:
[*]语法复杂,尤其是涉及多级指针和类型转换时。
[*]调用成员函数时需要显式传递对象实例(this 指针)。
[*]只能指向特定类的成员函数,不能指向普通函数或 lambda 表达式。
[*]适用场景:适用于需要直接调用特定类成员函数的场景。
示例代码:
#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 感谢发布原创作品,程序园因你更精彩 前排留名,哈哈哈 过来提前占个楼 不错,里面软件多更新就更好了 前排留名,哈哈哈 感谢分享 新版吗?好像是停更了吧。 收藏一下 不知道什么时候能用到 热心回复! 感谢分享,学习下。 这个好,看起来很实用 热心回复! 过来提前占个楼 新版吗?好像是停更了吧。 谢谢楼主提供! 喜欢鼓捣这些软件,现在用得少,谢谢分享! 谢谢分享,试用一下 很好很强大我过来先占个楼 待编辑 这个有用。
页:
[1]
2