函數指針在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;
}