函數指針的簡單代碼示例

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




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章