c生万物系列(封装)
创始人
2024-11-26 06:34:27
0

为了对c语言进行封装,笔者参考了lw_oopc等开源库,决定使用宏对结构体进行封装。

先说一下大致思想:通过宏,结构体和文件来实现封装。

大概步骤:抽象出类-> 使用lw_oopc库进行封装->定义接口封装底层实现 ->main主函数调用接口 

顺便一提,笔者认为使用lw_oopc库最好在源文件,放在主函数会丧失封装性,放在头文件压根过不了编译器。在源文件实现后再大量定义接口。

以该文件为例,笔者将私有类放在源文件,然后在定义初始化的相关函数,比如initd(),这个函数隐藏了virtual_new函数,但是可以在头文件中声明,从而被调用,这就实现了接口。通过定义接口,可以选择提供的服务和细节,但是又可以隐藏内部实现。

在头文件中使用typedef进行重定义,可以达到模拟private的效果,但是除了不能直接访问该数据结构,并不影响定义指针然后分配内存。

至于public,直接在头文件中定义或者在main文件中定义就行了,这样可以直接访问内部成员。

不得不说,lw_oopc宏的用法十分新奇,笔者个人觉得提供了一种非常好的对象规范。

但是开源后随着不断更新和修改,在现在的新版本中,笔者甚至觉得有点臃肿了,不是十分好用。

让我们看看初始版本:

通过宏来写模板。c语言宏定义的本质是替换,可以看看下图,两者就是替换前后:

至此,封装的要素class,public,private已经大致实现,下一节笔者讲一讲继承。

相关内容

热门资讯

实测教程”辣椒互娱房卡充值“王... 来教大家如何使用房卡充值房卡充值 添加房卡批售商:微【113857775】复制到微信搜索、直接添加房...
房卡必备教程“牛牛房卡批发平台... 新世界牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡...
实测教程”毛豆互娱房卡怎么得“... 实测教程”毛豆互娱房卡怎么得“人海大厅房卡充值微信房卡充值 添加房卡批售商:微【113857776】...
微信金花房卡哪里买的/微信金花... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
一秒了解”蜜瓜大厅房卡多少米“... 一秒了解”蜜瓜大厅房卡多少米“金花牛牛房卡充值游戏中心打开微信,添加客服【113857776】,进入...
上下分金花牛牛房卡怎么冲/创建... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
玩家攻略”海米大厅房卡多少米“... 玩家攻略”海米大厅房卡多少米“哪里有详细房卡介绍 微信牛牛房卡客服微信号微信游戏中心打开微信,添加客...
炸金花房卡专卖店联系方式/哪里... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡...
玩家须知”灯笼众娱如何买房卡“... 第二也可以在游戏内商城:在游戏界面中找到 “微信金花,斗牛链接房卡”“商城”选项,选择房卡的购买选项...
终于找到“微信金花房卡怎么来的... 新毛豆互娱是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡...
电视阿里系统如何装安卓,轻松安... 亲爱的读者,你是不是也像我一样,对电视上的阿里系统充满了好奇?想要给它装上安卓系统,让它变得更加灵活...
玩家须知”星辰娱乐房卡领取码“... 玩家须知”星辰娱乐房卡领取码“金花房卡哪里是有卖微信房卡充值 添加房卡批售商:微【113857776...
牛牛房卡批发平台/牛牛链接房卡... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享受...
1分秒分析”海洋世界房卡怎么弄... 1分秒分析”海洋世界房卡怎么弄“新道游房间卡怎么购买 微信牛牛房卡客服微信号微信游戏中心打开微信,添...
玩家攻略”王者大厅有挂吗“金花... 来教大家如何使用房卡充值房卡充值 添加房卡批售商:微【113857775】复制到微信搜索、直接添加房...
金花房卡找谁买划算/炸金花房卡... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享受...
1分秒分析”海神众娱房卡获取方... 来教大家如何使用房卡获取方式房卡充值 添加房卡批售商:微【113857775】复制到微信搜索、直接添...
给大家讲解“牛牛房卡购买渠道/... 新世界牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡...
实测教程”新海岛大厅获取房卡教... 来教大家如何使用获取房卡教程房卡充值 添加房卡批售商:微【113857775】复制到微信搜索、直接添...
微信怎么玩金花自建房间步骤/微... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...