您的位置:首页 > 编程语言 > C语言/C++

C++学习笔记:函数指针语法基础以及函数指针做函数参数的思想剖析

2016-02-28 21:09 911 查看
// 函数指针语法基础02.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>

using namespace std;

int add(int a,int b){
cout << "add() do...:"<< a + b << endl;
return a + b;
}
int _tmain(int argc, _TCHAR* argv[])
{
//定义一个函数类型
typedef int(func)(int a, int b);
func *myFunc = NULL;
myFunc = add;
myFunc(2, 4);

//定义一个函数指针型  指向函数的入口地址
typedef int(*funcP)(int a, int b);//int *a=NULL;
funcP myP;//定义一个指针
myP = add;
myP(5, 5);

//定义一个函数指针
int(*myFuncP)(int a, int b);
myFuncP = add;
myFuncP(10, 10);

return 0;
}

2.函数指针做函数参数的思想剖析:

// 函数指针做函数参数的思想剖析02.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>

using namespace std;

int myadd1(int a, int b){//子任务的实现者
cout << "add() do...:" << a + b << endl;
return a + b;
}

int myadd2(int a, int b){//子任务的实现者
cout << "add() do...:" << a + b << endl;
return a + b;
}

int myadd3(int a, int b){//子任务的实现者
cout << "add() do...:" << a + b << endl;
return a + b;
}

//定义一个类型
typedef int(*MyTypeFuncAdd)(int a, int b);

//函数指针做函数参数
int MainOp(MyTypeFuncAdd myFuncAdd){
int c = myFuncAdd(5, 6);
return c;
}

//任务的调用和任务的实现可以分开

int main()
{
myadd1(1, 2);//直接调用

MyTypeFuncAdd myFuncAdd = NULL;
myFuncAdd = myadd1;
myFuncAdd(3, 4);//间接调用

//在MainOp框架 没有发生任何变化的情况下 实现多态的效果
MainOp(myadd1);
MainOp(myadd2);
MainOp(myadd3);

return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: