在C语言中,就是通过使用函数指针来实现C++中的多态的
#include<iostream> using namespace std; int max(int,int); int min(int,int); int add(int,int); void process(int,int,int (*fun)(int,int)); void main() { int a,b; cin>>a>>b; cout<<"max="; process(a,b,max); cout<<"min="; process(a,b,min); cout<<"add="; process(a,b,add); } int max(int x,int y) { return ( x > y ? x : y ); } int min(int x,int y) { return ( x < y ? x : y ); } int add(int x,int y) { return ( x + y ); } void process(int x,int y,int (*fun)(int,int)) { int result=fun(x,y);//result=(*fun)(x,y); cout<<fun<<" "<<*fun<<" "; cout<<result<<"\n"; }
运行结果: