函数对象(function object)是一个程序设计的对象允许被当作普通函数来调用。
函数对象与函数指针相比,有两个优点:第一是编译器可以内联执行函数对象的调用;第二是函数对象内部可以保持状态。
函数式程序设计语言还支持闭包,例如,first-class函数支持在其创建时用到的函数外定义的变量的值保持下来,成为一个函数闭包。
传统的C/C++函数指针:
#include stdlib.h/* Callback function, returns 0 if a b, 0 if a b, 0 if a == b */int compareInts(const void* a, const void* b){ return *(const int *)a - *(const int *)b;}...// prototype of qsort is// void qsort(void *base, size_t nel, size_t width, int (*compar)(const void *, const void *));...int main(void){ int items = { 4, 3, 1, 2 }; qsort(items, sizeof(items) / sizeof(items), sizeof(items), compareInts); return 0;}
热门信息
阅读 (14)
1 关于2010年十大语文差错公布的信息阅读 (11)
2 1992年5月6日阅读 (10)
3 还阴债后很困是怎么回事阅读 (9)
4 婴灵是指多大的胎儿 打胎的父母都该知道阅读 (9)
5 八字看配偶大小