zoukankan      html  css  js  c++  java
  • C++函数指针

    然后,我在想C++函数指针到底有啥用呢。想了又想,我想出来一种,就是将函数地址(函数n)作为函数(函数1)的参数时,便可以在访问函数1的时候就决定了,在函数1里面调用的是哪一个函数(函数1,2,3,4……,n-1,n)了。

    《C++ Primer Plus》里面的例子:

    #include <iostream>
    double betsy(int);
    double pam(int);
    
    void estimate(int lines,double (*pf)(int));
    
    int main()
    {
        using namespace std;
        int code;
    
        cout << "How many lines of code do you need?";
        cin >> code;
    
        cout <<"Here's Betsy's estimate:
    ";
        estimate(code,betsy);
        cout << "Here's Pam's estimate:
    ";
        estimate(code,pam);
        return 0;
    }
    double betsy(int lns)
    {
        return 0.05*lns;
    }
    double pam(int lns)
    {
        return 0.03*lns + 0.0004*lns;
    }
    void estimate(int lines,double (*pf)(int))
    {
        using namespace std;
        cout << lines << "line will take";
        cout << (*pf)(lines) << "hour(s)
    ";
    }

    也就是访问estimate时就决定了,是接下来是要调用betsy还是pam了,因为函数地址传进去了。妈的C++真简单。妈的真简单。

    这里是IDA做的C++反汇编代码,一看就明白了,哈哈哈哈,C++真简单。

  • 相关阅读:
    js判断各个浏览器
    js中的全局函数
    js正则表达式大全(转)
    js url编码函数
    原生的ajax(json)
    原生js拖拽
    js浏览器兼容
    何为反向代理、正向代理
    dom元素循环绑定事件的技巧
    media 适屏
  • 原文地址:https://www.cnblogs.com/rixiang/p/5469010.html
Copyright © 2011-2022 走看看