zoukankan      html  css  js  c++  java
  • 18.C++-[ ]操作符使用 、函数对象与普通函数区别(详解)

    在上章17.C++-string字符串类(详解)学习了string类,发现可以通过[ ]重载操作符来访问每个字符。

    比如:

    函数对象

    • 函数对象是指该对象具备函数的行为
    • 函数对象,是通过()调用操作符声明得到的,然后便能通过函数方式来调用该对象了.
    • ()调用操作符可以定义不同参数的多个重载函数
    • ()调用操作符只能通过类的成员函数重载(不能通过全局函数)
    • 函数对象用于在工程中取代函数指针

    比如,定义一个函数对象t:

    接下来,我们来个普通函数和函数对象的示例,便知道两者的区别了.

    需求如下:

    • 通过一个函数,来获取斐波那契数列每项的值
    • 每调用一次函数,便返回一个值
    • 可以重复使用

    普通函数实例:

    运行打印:

    从上面代码可以看到,通过普通函数实现的需求,还需要两个全局变量才行,这在大项目里,完全不可取的,若项目里,像这样的模块多的话,那得有多少个全局变量啊?并且这些全局变量能够随意被破坏,没有一点封装性.

    接下来,通过函数对象来完成这个需求:

    运行打印:

    从上面代码看到,使用函数对象后,便不需要使用全局变量了.


    文章来源:https://www.cnblogs.com/lifexy/p/8647921.html

  • 相关阅读:
    POJ3171 线段树优化dp
    Codeforces Round #590 (Div. 3)
    POJ2777 线段树区间染色问题
    POJ2182 Lost Cows 树状数组,二分
    P1908 逆序对 树状数组
    2019 Multi-University Training Contest 3
    主席树板子题区间第k小
    权值线段树板子题
    KMP板子题
    稀疏贝叶斯
  • 原文地址:https://www.cnblogs.com/xiongjim/p/9673926.html
Copyright © 2011-2022 走看看