函数指针
来源:互联网 发布:熟丝桃子圈微博全数据 编辑:程序博客网 时间:2024/06/06 01:05
函数对象:
定义:函数对象是一个普通的类对象,但是可以采用标准的函数调用语法来调用它的operator()成员。函数对象是比函数更加通用的概念,因为函数对象可以定义跨越多次调用的可持久的部分(类似静态局部变量),同时又能够从对象的外面进行初始化和检查(和静态局部变量不同).
实现:函数对象重载函数调用操作符(),来创建类似于函数指针的东西。
#include <iostream>using namespace std;class fib{public:fib():a(1),b(1){};int operator()(void);private:int a;int b;};int fib::operator()(void){int temp = 0;a = b;a = temp + a ;return temp;};int main(){fib fi;cout << fi() << fi() << endl; system("pause"); return 0;}
优势:函数对象可以携带附加数据,而函数指针不行
让一个函数既可以接受函数对象,也可以接受函数指针,那么可以使用模板函数
#include <iostream>using namespace std;class big{public:big():a(1){};big(int a){this->a = a;}int operator()(int value);private:int a;};int big::operator()(int value){return value>a;};bool big5(int v){return v > 5;}template<typename T>int count_n(int *array,int size,T func){int count = 0;for (int i = 0 ;i < size ; i++){if(func(array[i])){cout << "array[" << i << "] = " << array[i] << endl; count ++ ;}}return count;};int main(){big fi=big();big xiao(8); //需要定义构造函数 int array[5] = {4,9,3,7,5};cout << count_n(array,sizeof(array)/sizeof(int),big5) << endl;cout << count_n(array,sizeof(array)/sizeof(int),big(5)) << endl ;system("pause"); return 0;}
- 指针函数 函数指针
- 函数指针/指针函数
- 指针函数&函数指针
- 函数指针 指针函数
- 函数指针 指针函数
- 指针函数,函数指针
- 函数指针,指针函数,
- 指针函数,函数指针
- 函数指针 指针函数
- 函数指针、指针函数
- 指针函数&函数指针
- 函数指针 指针函数
- 函数指针 指针函数
- 函数指针&指针函数
- 指针函数 函数指针
- 指针函数 &函数指针
- 函数指针&指针函数
- void指针 函数指针
- SQL 创建登陆名,用户,角色
- STM8 I/O口模拟I2C
- 如何判断DataGridView中为空的单元
- 如何使用yum工具从iso镜像文件上安装
- think in java 笔记二 第五章
- 函数指针
- 判断数据网络是否可用
- 如何在绑定后的DataGridView中新增行。
- Life in the Fast I/O Lane
- XML中预定义的实体引用
- flex 通过js获取ip地址和计算机名称表现在ie中,为什么要对ie的安全级别设置?
- 浅谈在软件开发中的开发与测试 - 上
- 得到屏幕分辨率
- MyEclipse快捷键大全