该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include "classmode.h"#include "stdio.h"#include "malloc.h"struct ClassParent{Vtbl* vptr;int mi;int mj;};struct ClassChild{ClassParent p;int mk;};//虚函数表数据结构 struct Vtbl{int (*padd)(Parent* pthis,int value);};//类对象虚函数表 static VtblParentVtbl={ParentAdd}; static VtblChildVtbl={ChildAdd}; int add(Parent* pthis,int value) //虚函数 {ClassParent* obj=(ClassParent*)pthis;return obj->vptr->padd(pthis,value);//调用具体对象的函数 };int ParentAdd(Parent* pthis,int value){ClassParent* obj = (ClassParent*)pthis;return obj->mi+ obj->mj+value;} int ChildAdd(Child* pthis,int value){ClassChild* obj = (ClassChild*)pthis;return obj->p.mi+obj->p.mj+obj->mk+value;} Parent* CreatClassParent(int i,int j){ClassParent* ret;ret=(ClassParent*)malloc(sizeof(ClassParent));if(ret!=NULL){ret->vptr=&ParentVtbl;ret->mi=i;ret->mj=j;}return ret;}void FreeClassParent(Parent* pthis){free(pthis);}int getI(Parent* pthis){ClassParent*obj = (ClassParent*)pthis;//解隐藏信息 return obj->mi;}int getJ(Parent* pthis){ClassParent*obj = (ClassParent*)pthis;//解隐藏信息 return obj->mj;}void setI(Parent* pthis,int i){ClassParent*obj = (ClassParent*)pthis;//解隐藏信息 obj->mi=i;}void setJ(Parent* pthis,int j){ClassParent*obj = (ClassParent*)pthis;//解隐藏信息 obj->mj=j;}void Pprintf(Parent* pthis){ClassParent*obj = (ClassParent*)pthis;//解隐藏信息 printf("mi=%d,mj=%d\n",obj->mi,obj->mj);}//子类 Child* CreatClassChild(int i,int j,int k){ClassChild* ret;ret=(ClassChild*)malloc(sizeof(ClassChild));if(ret!=NULL){ret->p.vptr=&ChildVtbl;ret->p.mi=i;ret->p.mj=j;ret->mk=k;}return ret;} void FreeClassChild(Child* pthis){free(pthis);}void Cprintf(Child* pthis){ClassChild*obj = (ClassChild*)pthis;//解隐藏信息 printf("mi=%d,mj=%d,mk=%d\n",obj->p.mi,obj->p.mj,obj->mk);}

简单的编程用c语言,终于学会了用c语言实现简单的面相对象的编程方法了相关推荐

  1. Python廖雪峰--面相对象高级编程学习

    1.使用_slots_ 正常情况下,当我们定义了一个class,创建一个class的实例后,我们可以给该实例绑定任何的属性和方法,这就是动态语言的灵活性.先定义class: class Student ...

  2. c语言程序设计需要学多久,九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会...

    九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会 首页 > C语言 > 九江c语言编程学习 作者:镀金池   发布时间:2017-10-18 14:11 据ID ...

  3. 《十天学会单片机和C语言编程》

    <十天学会单片机和C语言编程> 大家注意了这个文件只有最新版迅雷可以下载,下面的lesson几就是第几课.点击右键使用迅雷下载. ed2k://|file|[十天学会单片机和C语言编程]. ...

  4. C语言-函数-学会方程你的数学能力会乘风破浪突飞猛进-学会函数你的编程能力将百尺竿头更进一步

    工欲善其事,必先利其器. 方程是一种数学工具,列方程解方程能够有效解决数学问题. 函数是一种编程技巧,设计函数实现函数能够提高程序设计的效率. 函数之所以难学,是因为它太多变了,有多种形态. 课本不写 ...

  5. c语言编程学多久,丰城c语言编程学习,丰城学c语言编程的学校,丰城学c语言编程一般要多久才能学会...

    丰城c语言编程学习,丰城学c语言编程的学校,丰城学c语言编程一般要多久才能学会 首页 > 软件 > 丰城c语言编程学习 作者:镀金池   发布时间:2018-04-09 16:40 在之后 ...

  6. c语言 指针不能赋值吗,程序员编程C语言指针答疑:指针赋值没那么简单

    C语言指针,纸老虎 一.程序员编程C语言答疑合集 更多C语言学习答疑文章,请参阅:程序员编程C语言答疑文章合集 也可以加入下方我的"C语言答疑课堂"圈子,第一时间看到我给大家带来的 ...

  7. python基础教程是什么语言-终于懂得python中文入门教程

    Python作为一门新型的编程语言(一般常用作脚本语言)很受欢迎,毕竟相对其他的编程语言(Java ,C#等)来说比较容易入手.那么,在刚开始学习Python时有哪些疑难点需要掌握呢?以下是小编为你整 ...

  8. C语言编程入门新手学习精华:这样学习C语言最有效

    1. C语言已死吗? 本资料描述的是使用C语言的高级技巧,力求将你的C语言能力由"基础"提升为"高级".但是学习态度胜过学习方法,在正式学习之前,有一个问题不吐 ...

  9. 打算自学编程,但是不知道该先学哪门语言入门?

    最近,看到这样的一个话题:"打算自学编程,但是不知道该先学哪门语言入门?编程初学者应该先学C++.Java还是Python?",作为一个新手,应该学什么语言入门比较好呢?相信这是困 ...

最新文章

  1. 演讲实录 | DevOps五大理念及其落地实践
  2. 网站在改版时如何降低对排名的影响呢?
  3. vue点击改变data_vue实现响应式原理即vue如何监听data的每个属性的变化
  4. 如何查看linux系统的密码是多少,如何在Linux系统查询SAM密码
  5. 《http权威指南》阅读笔记(十)
  6. 你会给别人提反馈吗?
  7. jsencrypt加密结果false(网罗答案) - 分析篇
  8. Yaf框架视频教程之入门篇【已完成】
  9. python获取url的json数据_通过url获取json数据并在python中使用(simplejson)
  10. 【转】使用并口控制笔记本软驱中的电机
  11. access mysql odbc驱动程序_无法在 Office 即点即用外使用 Access ODBC 驱动程序或 OLEDB 提供程序 | Microsoft Docs...
  12. 【技术白皮书】第四章:信息抽取技术产业应用现状及案例(下)
  13. C语言编写飞机大战程序,C语言实现简单飞机大战
  14. boost入门(三):Asio简单示例
  15. 【Python基础 | 文件】小实验:将古诗写入一个文件,并复制到另一个文件中
  16. java split竖线_java对竖线|进行分割(split)操作
  17. OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading “D:\Anaconda\envs\pytorch-1.4\lib\site-package
  18. 解决卸载wifi共享软件后无法连网的问题
  19. 服务器能共享性能吗,共享云服务器性能
  20. 独孤思维:免费软件搬运项目,零成本玩公众号赚零花钱

热门文章

  1. 机器学习基础(三十三)—— 皮尔逊相关度评价
  2. 面向对象——意图与逻辑
  3. php使用 js格式解析,JavaScript解析JSON格式数据的方法示例
  4. etl构建数据仓库五步法_构建数据仓库五步法
  5. 怎么自学python-如何系统地自学 Python?
  6. python入门指南-python3.6.0入门指南(官方版).pdf
  7. python是什么类型的语言-Python是什么?简单了解pythonp-入门
  8. 学了python能干啥举例-原来Python可以做这么多有趣的事情
  9. 开课吧学python靠谱吗-开课吧成为CNCC中国计算机大会唯一教育合作伙伴
  10. python代码大全-python贪吃蛇游戏代码