函数指针定义

void func(string str){return;}

1.简单的函数指针的应用。
//形式1:返回类型(*函数名)(参数表)
void(*pFunc)(string);
 用法:pFunc = func;

    (*pFunc)("str");

2.使用typedef更直观更方便。
//形式2:typedef 返回类型(*新类型)(参数表)
typedef void(*pFunc)(string);

 用法:pFunc pfunc;

    pfunc = func;

    (*pFunc)("str");

3.在C++类中使用函数指针。
//形式3:typedef 返回类型(类名::*新类型)(参数表)

class B
{
public:
    void PrintStr(string val){
        cout << "class B " << val << endl;
    }
};

  用法: 

  typedef void (B::*pFunc)(string);

  pFunc ptrFunc;

  ptrFunc = &B::PrintStr;

  //1

   B b;

   (b.*ptrFunc)("b.*ptrFunc");

  //2

 B* pB = new B;
     (pB->*ptrFunc)("new B->ptrFunc");
     delete pB;

  

时间: 2024-11-05 01:20:25

函数指针定义的相关文章

可读性很强的C语言的函数指针定义

通常C/C++程序里面要用到大量的指针,其语法非常难以阅读.比如下面的vp指针类型: #include <iostream> using namespace std; typedef void (*vp) (float&,float&); void foo(float &a,float &b) { a = a + b; } int main() { // float a=1; float b=2; vp t=&foo; t(a,b); cout <

C语言 函数指针定义三种方式

//函数指针 #include<stdio.h> #include<stdlib.h> #include<string.h> //函数指针类型跟数组类型非常相似 //函数名就是函数的地址,函数的指针,对函数名进行&取地址操作,还是函数名本身,这是C语言编译器的特殊处理 void test(int a){ printf("a=%d\n",a); } void ProtectA(){ //定义函数类型 typedef void(FunType)(

指向API的函数指针定义方法

typedef NTSTATUS ( __stdcall *ZWQUERYSYSTEMINFORMATION ) ( IN SYSTEM_INFORMATION_CLASS SystemInformationClass, IN OUT PVOID SystemInformation, IN ULONG SystemInformationLength, OUT PULONG ReturnLength OPTIONAL );

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

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

函数指针与回调函数

一.函数指针 1.  函数指针就是一个指针变量,用来指向函数地址.正在运行的程序(进程)在内存中占据一定的空间.进程包括编译好的程序代码和需要使用的变量.因此,程序代码中的函数就是一些字符域,要得到一个函数地址,也就是得到这些字符域的起始地址. 2. 函数指针的三种形式:    指向普通C函数的函数指针 --- C语言中的函数指针    指向C++类静态成员函数的函数指针 --- C++    指向C++类非静态成员函数的函数指针 --- C++ 函数指针的本质自然也就是函数地址.  类成员函数

函数指针与虚函数表

函数指针 定义方式 typedef 返回值类型(* 新类型名称)(参数列表) typedef char (*PTRFUN)(int); PTRFUN pFun; char glFun(int a){ return;} void main() { pFun = glFun; (*pFun)(2); } 调用方式: 直接把函数指针变量当作函数名,然后填入参数 将函数指针的反引用作为函数名,然后填入参数 上面的PTRFUN也可直接进行以下调用: PTRFUN(2); 函数调用方式 函数名就是函数的地址

10 函数指针 回调函数

?.函数指针定义 ?.函数回调 三.动态排序 四.函数返回值是函数指针

函数指针、回调、动态排序、返回函数指针

1.函数指针定义及初始化: int (*p)(int,int)=NULL; p=maxValue;//将函数maxValue的地址传给p 或 (*p)=maxValue; 2.函数回调: int getValue(int a,int b,int (*p)(int,int));//函数指针作为getValue的参数 函数指针指向函数可变 3.动态排序(排序条件多变) 将决定排序方式的条件封装成函数,然后再回调 typedef BOOL (*P_Fun)(int,int);//头文件#include

黑马程序员-----指针函数和函数指针

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ----- 第一讲 指针函数 一.指针函数的概念 所谓函数类型是指函数返回值的类型,在c语言中允许一个函数的返回值是一个指针(地址),这种返回指针的函数称为指针型函数. 二.指针函数的定义 定义指针型函数的一般形式为: int  *sum(int a,i