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

什么建设网站好wordpress手动升级插件

什么建设网站好,wordpress手动升级插件,wordpress计算几岁几月几天,wordpress怎么念面向对象的三个特征#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.sadfv.cn/news/90299/

相关文章:

  • 电商小程序平台株洲正规竞价优化推荐
  • 绿色简单网站外贸人常用的app
  • 下载源代码建网站网络营销网站规划建设实训作业
  • 关于公司网站建设的请示什么是商业网站
  • 四川省建设厅的注册中心网站企业年金离职后怎么办
  • 广安哪里做网站行业门户网站建设方案
  • 个性化的个人网站简易南昌seo网站管理
  • 淘宝网站建设素材品牌策划 网站源码
  • 吉林整站优化电商品牌推广方案
  • 佛山网站建设公司价格多少做网站用哪几个端口 比较好
  • win7 搭建iss网站wordpress浏览量显示
  • 建设网站的申请信用卡分期付款淘宝店铺首页装修
  • 潍坊定制网站搭建开发网站和电脑软件的区别
  • 网站正在建设中页面 英文wordpress 推送到百度
  • 湛江手机网站制作dede织梦做的网站 栏目页有切换js 怎么循环子栏目 调子栏目
  • 站长统计代码wordpress迁移500
  • 江门制作网站公司导入wordpress
  • 网站分站系管理系统入口admin
  • 网站开发前的准备入侵网站被判多少年
  • 深圳做网站公司排名中国最好的室内设计网
  • 所有外包网站怎么给自己做个网站
  • 电子商务网站开发教程课本例题做外贸网站服务器要选择哪里的
  • 网站怎么做qq微信登陆界面温州商城网站建设
  • 手机app视频制作搜索引擎优化答案
  • 海晏县公司网站建设化妆品网站设计论文
  • dedecms仿站教程广州天河区房价2021最新价格
  • 建设银行官网首页网站公告wordpress怎么变中文版
  • 专门做单页的网站wordpress 主机和域名绑定域名
  • 可以做设计兼职的网站wordpress安卓手机版
  • 3d网站带后台下载网站备案信息是什么意思