函数指针在c++使用回调函数时必学项目,不使用函数指针时的代码:
<pre name="code" class="cpp">// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std;
float Pluscode(float a, float b){ return a + b; }
float minuscode(float a, float b){ return a - b; };
float multiplycode(float a, float b){ return a*b; };
float dividecode(float a, float b){ return a / b; };
void switchfun (float a, float b, char opcode)
{
float result;
switch (opcode)
{
case '+':result = Pluscode(a, b); break;
case'-':result = minuscode(a, b); break;
case'*':result = multiplycode(a, b); break;
case '/':result = dividecode(a, b); break;
default:
break;
}
cout << a<<opcode<<b<<'=' << result << endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
switchfun(2, 5, '+');
return 0;
}
看看函数指针的效果
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std;
float Pluscode(float a, float b){ return a + b; }
float minuscode(float a, float b){ return a - b; };
float multiplycode(float a, float b){ return a*b; };
float dividecode(float a, float b){ return a / b; };
void switchfun (float a, float b, float(*pointfun)(float,float))
{
float result=pointfun(a,b);
//cout << a<<b<<result << endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
switchfun(2, 5, Pluscode);
return 0;
}