c/c++:function pointer

File : func_ptr.cpp
Type : c/c++
Brief : function pointer


#include <iostream>
using namespace std;

void hello(void) 
{ 
    cout << "你好!" << endl;; 
}

void bye(void) 
{ 
    cout << "再见!" << endl; 
}

void ok(void) 
{
    cout << "好的!" <<  endl; 
}

//用于处理参数和返回值的形式都一样,但是功能不确定的一组函数,可以使用。
//比如算术运算符,加、减、乘、除,都可以用typedef int (*calc)(int,int)代表。

// 函数指针
typedef void (*funcptr)(void);
typedef void (A::*class_funcptr)(void);     // 指向类A的成员函数指针

void speak(int id)
{
   funcptr words[3] = {&hello, &bye, &ok};
   funcptr fun = words[id];
   (*fun)();
}

int main()
{
    speak(1);
    speak(2);
    
    return 0;
}

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [ yehuohan@gmail.com ]

文章标题:c/c++:function pointer

本文作者:Y

发布时间:2017-08-09, 13:28:41

最后更新:2019-05-21, 20:06:11

原始链接:http://yehuohan.github.io/2017/08/09/Gist/c&c++/function-pointer/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。