C++ 11 std::mem_fn
2024-10-21 15:49:57
mem_fn
想到member function 成员函数
这还真就是用来调用成员函数的
普通的函数我们通过函数指针可以调用,但对于成员函数的调用稍微复杂一点,需要对象,也即this指针
因为成员函数和对象并不存储在一起,一个对象的内存空间不包括函数代码,否则每个对象都包含自己的函数代码,内存就比较浪费
看下面的例子就懂了
#include <functional>
#include <iostream>
struct Foo {
void display_number(int i) {
std::cout << "number: " << i << '\n';
}
int data = 7;
};
int main() {
Foo f;
auto print_num = std::mem_fn(&Foo::display_number);
print_num(f, 42);
auto access_data = std::mem_fn(&Foo::data);//专门获取对象中data值的函数
std::cout << "data: " << access_data(f) << '\n';//传入对象f,即获取f的data值
}
最新文章
- 算法与数据结构(八) AOV网的关键路径
- 新手SSH基础框架搭建
- 前端设计师也有必要学习seo,推荐一个seo博客
- 建立MySQL的ODBC
- IIS7.5中神秘的ApplicationPoolIdentity
- 【BZOJ-3555】企鹅QQ 字符串Hash
- udp-->;socket通信原理
- php练习题:投票
- [转]Javascript定义类的三种方法
- 查网卡信息(千M o 万M)
- socket 网摘
- 开心菜鸟系列学习笔记------------javascript(6)
- 浙大pat 1012题解
- 拓展自定义编辑器窗口(EditorGUILayout类)
- Sasha and Array
- dubbo源码分析(一)
- Eclipse dynamic web project 插件
- 使用IGP和BGP的配合达到降低路由容量目的的实验与总结
- 关于setTimeout的面试题
- centos7虚拟机设置静态ip