【C语言实现多态效果实例】
在C++中通过虚函数重写可以实现多态效果,即同一个调用语句,传入不同参数产生不同的状态。在C语言中,通过函数指针做函数参数其实也可以实现这个效果,下面通过计算图形面积的实例来实现C语言多态,通过同一个调用语句,传入不同图形函数来打印面积。
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
double GetSquareArea(int a, int b)
{
return a * b;
}
double GetCircular(int r, int)
{
return r * r * 3.14;
}
double GetTriangle(int h, int l)
{
return 0.5 * h * l;
}
void PrintArea(int a, int b, double (*_cbGetArea)(int a, int b))
{
printf("图形的面积为:%f\n", _cbGetArea(a, b));
}
int main()
{
PrintArea(10, 10, GetSquareArea);
PrintArea(10, 0, GetCircular);
PrintArea(10, 10, GetTriangle);
system("pause");
return 0;
}
C语言实现多态的理论基础请见我的文章
函数指针做函数参数核心思想
C++中多态的详细介绍可查看我的另一篇文章,链接如下
C++多态案例
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了