函数指针数组实现“多态”

#include 
using namespace std;
void max(int a, int b);
void min(int a, int b);
int main()
{
    int a = 1; int b = 2;
    // 函数指针:void (*p)(int, int) = nullptr;  指针函数:void* fun_name(parameters);
    void(*fun_table[2])(int, int) = { &max, &min }; 	// 函数指针数组。去掉&也可,函数名本身就是地址。
   														// 指针数组:void* arr_name[];
   														// 数组指针:void(*ptr_name)[];
    for (int i = 0; i < 2; i++)
    {
        fun_table[i](a, b);
    }
    system("pause");
    return 0;
}
void max(int a, int b)
{
    cout << " max value: " << (a > b ? a : b) << endl;
}
void min(int a, int b)
{
    cout << " min value: " << (a < b ? a : b) << endl;
}

运行结果:
在这里插入图片描述

你可能感兴趣的:(函数指针数组实现“多态”)