重载运算符 标准库function的用法 问题:int(int, int)算不算一种比较通用的类型?? 比如函数: int add(int a, int b); 比如lambda:auto mod = [](int a, int b){return a % b}; 比如函数对象类:int operator()(int a, int b); 上面3个的共同特征就是:int(int, int),但是如何让上面的3种形式变成共同的的呢??? 答案:使用function类. std::function<…
函数调用运算符 struct test { int operator()(int val) const { return (i > 0 ? i : -i); } }; 所谓的函数调用就是一个类重载了函数调用符,类在使用重载函数调用符时接受相应参数.这一过程就像是使用一个函数一样,因此叫做函数调用. 上面的类test,它重载了函数调用符(), 接受一个int类型参数,返回它的绝对值. 我们就可以将一个test类对象当做一个函数来使用: int main(void) { test t; int va…