• 第35课.函数对象分析("()"重载)


    1.编写一个函数

    a.函数可以获得斐波那契数列
    b.每调一次返回一个值
    c.函数可以根据需要重复使用

    2.函数数对象

    a.使用具体的类对象取代函数
    b.改类的对象具备函数调用的行为
    c.构造函数指具体数列的起始位置
    d.多个对象相互独立的求解数列项

    函数调用操作符("()")

    a.只能通过类的成员函数重载("= ", "[]")
    b.可以定义不同参数的多个重载函数

    eg:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class Fib
    {
        int a0;
        int a1;
    public:
        Fib()
        {
            a0 = 0;
            a1 = 1;
        }
        
        Fib(int n)
        {
            a0 = 0;
            a1 = 1;
            
            for(int i = 2; i <= n; i++)
            {
                int t = a1;
                
                a1 = a0 + a1;
                a0 = t;
            }
        }
        
        int operator () ()
        {
            int ret = a1;
            
            a1 = a0 + a1;
            a0 = ret;
            
            return ret;
        }
    };
    
    int main()
    {
        Fib fib;
        
        for(int i = 0; i < 10; i++)
        {
            cout << fib() << endl;
        }
        
        cout << endl;
        
        Fib fib2(10);
        
        for(int i = 0; i < 5; i++)
        {
            cout << fib2() <<endl;
        }
    
        return 0;
    }
  • 相关阅读:
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    python嵌套列表知多少
    旋转图像
  • 原文地址:https://www.cnblogs.com/huangdengtao/p/11889507.html
Copyright © 2020-2023  润新知