zoukankan      html  css  js  c++  java
  • 函数调用运算符笔记

    参考:C++ Primer 5th P506.

    如果类重载了函数调用运算符,则我们可以像使用函数一样使用该类的对象。 

    例子:

    struct absInt
    {
       int operator()(int val)     const {
         return val < 0? -val:val;
    }
    };

    调用:

    int i = -42; 
    absInt absObj;
    int ui = absObj(i) ; //将i传递给absInt.operator()

    即使absObj只是一个对象而非函数,我们也能调用该对象。 调用该对象实际上是在运行重载的调用运算符。

    函数调用运算符必须是成员函数。一个类可以定义多个不同版本的调用运算符,彼此之间应该在参数数量或类型上有所区别。 

    如果类定义了调用运算符,则该类的对象称为函数对象。因为可以调用这种对象,所以我们说这些对象的"行为像是函数一样"。

    The Safest Way to Get what you Want is to Try and Deserve What you Want.
  • 相关阅读:
    bzoj2555-SubString
    离散对数
    xsy1436-括号游戏
    bzoj1143-祭祀
    连通分量
    bzoj3864-hdu4899-Hero meet devil
    bzoj3238-差异
    poj1065-Wooden Sticks
    多项式除法
    JavaScript 对象
  • 原文地址:https://www.cnblogs.com/Shinered/p/10172996.html
Copyright © 2011-2022 走看看