指向“包含多個函數指針的數組“的指針

//指向“包含多個函數指針的數組“的指針
//形式:void (*(*PP)[2])(int X, int Y);
//包含多個函數指針的數組-->怎樣定義:數組中的每個元素都是一個函數指針
#include <iostream>
#include <vector>
void AddFunc(int x, int y)
{
	std::cout << (x + y) << std::endl;
}
void Minus(int x, int y)
{
	std::cout << abs(x - y) << std::endl;
}
int main()
{
	typedef void(*FuncPointer)(int, int);
	//void(*(*p3)[2])(int , int );
	//定義指向函數指針的數組
	void(*p2[2])(int, int) = { AddFunc, Minus };
	//相當於p3=&p2;
	void(*(*p3)[2])(int, int) = &p2;
	std::vector<FuncPointer> FuncPointVec;
	for (size_t i = 0; i < 2; i++)
	{   //講函數的頭指針差入容器內部中
		FuncPointVec.push_back((*p3)[i]);
	}
	for (size_t i = 0; i < 2; i++)
	{
		std::cout << "First Type of Outcome Resulting!" << std::endl;
		FuncPointVec[i](i*i + 1, i*i - 2);
		std::cout << std::endl;
		std::cout << "Second Type of Outcome Resulting!!" << std::endl;
		(*FuncPointVec[i])(i*i + 1, i*i - 2);
	}
	return 0;
}

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