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; }
相关文章推荐
- C语言运算符优先级
- 1080. Graduate Admission (30)
- VC++基于微软语音引擎开发语音识别总结
- 顺序队列和链式队列的实现
- C++基础概念OOA、OOD、OOP
- 顺序栈与链表栈的实现
- C\C++代码优化的一些建议
- C\C++代码优化的一些建议
- C++飞机大战
- DGGame序-回归Blog重构自我
- c++强类型枚举enum class NEWTYPE
- c语言指针和地址中 &a 和*a 有啥区别
- C语言中的一些容易出现错误的知识点
- C++学习笔记51——在构造函数和析构函数中调用虚函数
- memset in C++ and C
- c++ 学习备忘
- Vision Lab Features Library (VLFeat)库C语言API接口
- 九度-题目1096:日期差值
- USACO1.3:milk
- USACO1.2:milk2