C++仿函数

仿函数(Functor)又叫函数对象(Function Object), 这是一个很有趣的编程能力,它来源于编程语言的操作符重载的特性,只要允许操作符重载的语言都可以实现仿函数的特性用法,比如c++,甚至一些本身并不包含函数特性的语言,例如java、c#。 我们知道C++允许很多操作符重载,其中就包含()即函数调用操作符,如果将一个类的()操作符进行重载,在...

Read More

C++中的左值和右值

左值是可以取地址的表达式,右值是不可以取地址的表达式。左值通常代表可修改的西乡,右值代表不可修改的常量或临时对象。 左值有: 变量、数据匀速、结构体成员 右值有: 字面值、字符串字面值、表达式结果。 左值自C就有之, 但自c++11始才引入右值概念,这么做是为了优化代码,提高程序的性能。右值引用可以绑定到一个临时对象上,并且可以将其作为参数传递给函数。通过使...

Read More