当前位置: 首页 > news >正文

网站改版提示无需改版最潮流的网站开发脚本语言

网站改版提示无需改版,最潮流的网站开发脚本语言,做网站百度还是阿里巴巴好,wordpress 获取文章的分类id面向对象的三个特征#xff1a;封装#xff0c;继承#xff0c;多态。但是C语言不是面向对象编程语言#xff0c;所以需要借助一些技巧来实现这三个特征#xff1a;#xff08;1#xff09;C语言没有成员函数#xff0c;struct只能封装数据#xff0c;不能封装方法封装继承多态。但是C语言不是面向对象编程语言所以需要借助一些技巧来实现这三个特征1C语言没有成员函数struct只能封装数据不能封装方法可以在struct里使用函数指针2C语言不支持继承可以在一个struct里包含另一个struct3C语言也没有虚函数实现多态就更麻烦了我不会。举个例子现在有Point结构体定义如下struct Point{float x;  float y; };如果想从Point派生出Circle可以这么写struct Circle{  struct Point o; //圆心  float r;        //半径}; struct Circle C;struct Point *pPoint  (struct Point*)(C);此时如果将Circle类型的指针强制换换成Point类型指针因为内存是顺序连续的所以没问题pPoint-x访问的是C.o.xpPoint-y访问的是C.o.y.也就是说在需要基类指针的地方可以传入派生类的指针。    但是如果将o和r的顺序换一下就错了。struct Circle{  float r;        //半径  struct Point o; //圆心}; struct Circle C;struct Point *pPoint  (struct Point*)(C);//这么转会出问题简单来说就是如果想使用C语言的继承那么基类对象一定要写在派生类的最前面但是对C语言编程而言不建议使用继承和多态使用封装就可以了。对封装的理解可以退化为不直接访问结构体的成员变量而是通过函数去访问C语言没有private属性直接访问成员变量总是可以的但是不建议这么做此外C语言结构体没有this指针所以使用函数指针封装方法也用的比较少更多的是提供一些全局函数将结构体指针作为参数传进去操作。    假设有个Moubus数据包的结构体#define PACK_SIZE 256 struct ModbusPack{  uint8_t data[PACK_SIZE];  uint8_t len;}; 还有和它对应的操作函数void Modbus_init(struct ModbusPack *pThis); void Modbus_append(struct ModbusPack *pThis,uint8_t v); void Modbus_appends(struct ModbusPack *pThis,uint8_t *vs,uint8_t len); uint8_t Modbus_len(struct ModbusPack *pThis); void Modbus_append_crc(struct ModbusPack *pThis); uint8_t Modbus_check(struct ModbusPack *pThis); void Modbus_init_query(struct ModbusPack *pThis,uint8_t addr,uint8_t fc,uint16_t regbase,uint16_t regNum); void Modbus_print(struct ModbusPack *pThis); 对于Modbus_len这个函数的实现如下uint8_t Modbus_len(struct ModbusPack *pThis) {//省略对指针是否为空的判断  return pThis-len; } 看起来比直接访问成员变量复杂好处在于当修改了ModbusPack的实现将len改为m_len,则只需要修改Modbus_xxx函数就行了不影响其他地方对这个函数的调用因为调用的地方只依赖于这个函数的名字而不需要知道相应结构体的具体实现。struct ModbusPack{  uint8_t m_data[PACK_SIZE];  uint8_t m_len;}; uint8_t Modbus_len(struct ModbusPack *pThis) {  //省略对指针是否为空的判断  return pThis-m_len;} 简单的使用例子如下#include modbus.h int main(){  struct ModbusPack pack;  Modbus_init(pack);//C语言没有构造函数,通过初始化函数初始化对象  Modbus_init_query(pack,0x01,0x03,0x0000,0x0002);  Modbus_print(pack);  return 0;} 运行结果友情提示找对象虽易面向对象不易且行且珍惜。声明本文于网络整理版权归原作者所有如来源信息有误或侵犯权益请联系我们删除或授权事宜。
http://www.pierceye.com/news/450836/

相关文章:

  • 旅游网站制作过程百度收录查询入口
  • 简述企业网站建设的流程网站建设的需求分析报告
  • 做网络课程的网站聚美优品网站建设分析
  • 网站建设公司简介wordpress注册按钮
  • 网站的栏目建设在哪里惠州网
  • 免费建站模板哪个好核酸造假7人枪毙视频
  • 一手房哪个网站做信息效果好微信小程序打不开
  • 建设网站图片素材包头怎样做网站
  • 网站内容建设与管理90设计app下载
  • 怎么做优惠卷网站公司做网站大概多少钱
  • 哪些网站是单页面应用程序在线做网站流程
  • 公司网站设计维护官方网站建设需要做哪些东西
  • 网站被k还能不能在百度做推广wordpress主题网址导航葬爱
  • 成都网站制作和建设辽阳北京网站建设
  • 合肥金融网站设计网页制作工具分哪两类
  • 专业营销型网站定制wordpress菜单绑定模板
  • 网站建设公司找哪家好石家庄网站改版
  • 建立一个网站要多久网页界面ps制作步骤
  • 珠海网站建设费用自己做网站切入地图
  • 个人在线视频播放网站搭建软件属于网站开发吗
  • 小米的企业网站建设思路c2c的网站
  • 网站设计书籍做网站的基础
  • 买下云服务器怎么做网站官方网站怎么查询
  • 手机版企业网站php西宁做网站公司排名
  • 微网站如何做推广做淘宝客网站需要备案吗
  • 天津网站制作重点windows与wordpress
  • 可以查企业备案的网站吗佛山住房和城乡建设部网站官网
  • 和初中生做视频网站怎么进入追信魔盒网站开发软件
  • 邯郸开发网站有哪些阳江市房产信息网
  • 快速网站推广公司丹阳房产网二手房