对于一个对象或表达式,如果可以对其使用运算符,则称它为可调用的。 包含如下: 普通函数 int int_add(const int a, const int b) { return a + b; } 函数指针 // 定义一个接受两个int参数 返回int的函数指针 typedef int(*compute)(int, int); int min(int x,...
Read More月度归档: 2012年5月
C++仿函数
仿函数(Functor)又叫函数对象(Function Object), 这是一个很有趣的编程能力,它来源于编程语言的操作符重载的特性,只要允许操作符重载的语言都可以实现仿函数的特性用法,比如c++,甚至一些本身并不包含函数特性的语言,例如java、c#。 我们知道C++允许很多操作符重载,其中就包含()即函数调用操作符,如果将一个类的()操作符进行重载,在...
Read MoreC++中的左值和右值
左值是可以取地址的表达式,右值是不可以取地址的表达式。左值通常代表可修改的西乡,右值代表不可修改的常量或临时对象。 左值有: 变量、数据匀速、结构体成员 右值有: 字面值、字符串字面值、表达式结果。 左值自C就有之, 但自c++11始才引入右值概念,这么做是为了优化代码,提高程序的性能。右值引用可以绑定到一个临时对象上,并且可以将其作为参数传递给函数。通过使...
Read More