zoukankan      html  css  js  c++  java
  • 笔记:C++ 函数对象

    内容主要来自维基百科

    函数对象:一个对象允许被当作普通函数来使用

    与函数指针比,优点:

    1.编译器可以内联执行函数对象的调用

    2.函数对象内部可以保持状态

    C++中,function object 是定义了函数调用运算符()的类对象,称作class type functor

    C++中,还有其他类型的function object

    C++ stl中的algorithm,大量使用函数对象来处理容器中的元素。

    使用例子:

                                                
      //File Name: functor.cpp
      //Created Time: 2017年09月07日 星期四 20时13分30秒
                                       
    #include <iostream>
    using namespace std;
    
    template<typename T>
    struct plus{
        T operator()(const T& x,const T& y) const{
            return x + y;
        }
    };
    int main(){
        //产生仿函数对象
        plus<int> plusobj;
    
        //这样子使用仿函数,就像使用一般函数一样
        cout << plusobj(3,5) << endl;
        
        //直接产生仿函数的临时对象(第一对小括号),并且调用它(第2对小括号)
        cout << plus<int>()(3,5) << endl;
        
        return 0;
    }
  • 相关阅读:
    如何在Altium中下载并添加软件没有的苦文件【转】
    20121124
    变量作用域&函数作用域
    http相关知识
    函数声明和函数表达式
    js中constructor和prototype
    委托模式
    js跨域
    原型和原型链
    javascript 数据类型
  • 原文地址:https://www.cnblogs.com/-maybe/p/7491995.html
Copyright © 2011-2022 走看看