//指向“包含多個函數指針的數組“的指針
//形式: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;
}
指向“包含多個函數指針的數組“的指針
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.