C++ 函数指针的定义方法及使用

int add(int a,int b){
    return a+b;
}

第一种,c语言通用。定义一个process_job函数指针类型,返回值为 int ,函数参数为int a,int b。使用用两种方法。

    typedef int (*process_job)(int a,int b);
    process_job a;
    a = add;

   cout << a(10,12) << endl;
    cout << (*a)(10,12) << endl; //OK

第二种,C++。使用,只有一种方法。

#include <functional>
typedef function< int(int,int)> task;
        task t = add;
    cout << t(22,23) << endl;
       // cout << (*t)(22,23) << endl; error
时间: 2024-07-29 06:39:20

C++ 函数指针的定义方法及使用的相关文章

函数指针及其定义和用法,C语言函数指针详解

函数指针大家了解一下就行了,用得不多,但一定要认识它. 什么是函数指针 如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址.而且函数名表示的就是这个地址.既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针. 那么这个指针变量怎么定义呢?虽然同样是指向一个地址,但指向函数的指针变量同我们之前讲的指向变量的指针变量的定义方式是不同的.例如: int(*p)(int, int); 这个语句就定义了

JavaScript函数的多种定义方法

缘起 javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对 javascript语言特性更进一步的深入理解,那么他有几种写法呢? ( function(){…} )() 或者 ( function (){…} () ) 首先要明白两个知识点 js中函数是引用类型: 函数一般执行方式:函数名+(): 下面的例子帮你理解引用类型 var a = function(x,y){ console.log(x + y

【C++】函数指针宏定义

看耗子叔文章学习虚函数表(http://blog.csdn.net/haoel/article/details/1948051)的时候被例子的第一句惊到了 typedef void(*Fun)(void); 多亏RR相助,弄懂了. 这行代码宏定义了一个函数指针类型Fun,函数指针,指的是指向函数的指针 第一个void指的是函数返回值类型,第二个void是函数参数类型列表,通用句法: typedef returntype(*name)(parameter1Type,parameter1Type,.

从cocos2dx中寻找函数指针传递的方法

目的 看到群里有个朋友搞了好几天函数指针传递,没搞好.所以写一篇文章,旨在从cocos2dx中帮朋友们找到如何传递指针. 旧版本的函数指针传递 全局函数函数指针调用 一般在C++11之前,我们一般是这样定义一个函数指针类型. typede void(*pFunc)(int,...); 什么意思呢? typedef void/*return type of function*/ (*pFunc/*the pointer of function*/) (int,.../*the types of f

函数指针三种方法

//函数指针定义 //1 typedef int(fun_point1)(int, int); int get_sum(int a, int b) { return a + b; } typedef int(*fun_point2)(int, int); int main(void) { //call function fun_point1* p = get_sum; int sum = p(3, 2); cout << "sum = " << sum <

函数指针的定义和使用

int (*probe)(struct platform_device *); 这是声明了一个函数指针probe,它的参数是一个platform_device类的指针,返回值是int.比如说我们声明了一个函数int func(struct platform_device *),那么可以令probe = func,对func()调用可以用probe()代替. 原文地址:https://www.cnblogs.com/god-of-death/p/9220993.html

c++中成员函数指针数组定义和初始化方法

实际项目中经常遇到很多类似操作,比如命令码对应执行函数等,对于此类操作,比较好的方式是使用const数组,将命令码和操作函数绑定在一起,通过查表方式找到操作函数,并执行操作函数.这样可以简化代码,降低复杂度,在c中这种方式很好实现,在c++中会稍微麻烦一些. 以串口命令解析执行为例,首先定义一个结构体,定义操作函数的指针类型: struct T_ShellInfo { string cmd; void (* DealFunc)(const vector<string> &vectStr

c语言定义函数指针和typedef简写

二种方法来定义函数指针 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<Windows.h> 4 5 int add(int a, int b) 6 { 7 return a + b; 8 } 9 10 //void msg(char s[]) 11 //void (*p)(char s[]) 函数指针的定义方法 12 //void (*)(char *s) 函数指针的类型 13 14 void msg(char

函数指针,回调函数的定义和使用

一.函数指针 定义:函数指针是指向函数的指针变量,即本质是一个指针变量. int (*f) (int x); /* 声明一个函数指针 */ f=func; /* 将func函数的首地址赋给指针f */ 指向函数的指针包含了函数的地址,可以通过它来调用函数.声明格式如下:  类型说明符 (*函数名)(参数)其实这里不能称为函数名,应该叫做指针的变量名.这个特殊的指针指向一个返回整型值的函数.指针的声明笔削和它指向函数的声明保持一致.指针名和指针运算符外面的括号改变了默认的运算符优先级.如果没有圆括