linux c面向对象分析

原创 2015年07月10日 19:13:00

我写驱动从来不理解驱动的代码流程,就是根据框架,就像堆积木直接写好。

最近好好的看了看linux内核的源代码,以及高焕堂先生的UML+OOPC嵌入式C语言开发精讲

,才发现原来c功能这么强大。

举例

struct k_object{

struct file_operations fops;

void* data;

void* others;

};


struct aa{


struct k_object* kobj;

}

类继承是通过包含来实现的。

它们的访问是这样的,

子类访问父类

struct aa tst;tst->kobj

父类访问子类

container_of()

这里提醒下,根据父子类的创建时间(即生存周期)它们有两种关系,组合和包含。

组合是子类创建时才创建父类,这样子类销毁时父类也没了,严格来讲,这不是父子关系?????。感觉linux使用的是这种方式。,有待考证

而包含是父类先创建,子类创建时将kobj的指针指向父类。父类不会随着子类的销毁而销毁。

多态是通过接口函数来实现的。

tst->kobj->fops = fread();



linux设备模型与内核中的面向对象思想

linux内核用C语言实现了C++面向对象的大部分特性:封装,继承,多态。在看内核的过程中,开始追寻其中的设计思想,封装、继承、多态。恰好今天又在看Linux设备模型,找了很多资料。总结如下: 1、l...

linux内核设计与实现思想 – C风格的面向对象

原文链接:linux内核学习 – C风格的面向对象     linux内核大量使用面向对象的编码风格。然而linux内核是完全使用C写就。学习他们如何使用C模拟面向对象机制很有意思。这种做法...

Linux内核模块模型面向对象分析

http://www.cnblogs.com/wenhuisun/archive/2013/02/22/2921781.html Linux内核模块模型面向对象分析 C到C...

黑马程序员-----java提高面向对象分析总结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

面向对象分析与设计——前言

书  名 面向对象分析与设计(第3版) 英文名 Object-Oriented Analysis and Design with Applications(Thi...

[OOAD]面向对象分析与设计第一章学习总结

一、面向对象的基本思想 面向对象方法是一种运用对象、类、继承、聚合、关联、消息和封装等概念和原则来构造软件系统的开发方法。 面向对象方法的基本思想如下: (1)客观世界中的事物都是对象,对象间存...
  • lwfwylb
  • lwfwylb
  • 2013年06月06日 14:28
  • 629

面向对象分析与设计(UML 2.0)读书笔记(一)

1.什么是方法学? 方法学是做事的系统方法,它是一个可以接受的过程。方法学还包括资源管理、规划、调度和其他管理任务的建议或技术。   2.方法学能够解决的问题? 规划:确定需要做什么调度:...

面向对象分析与设计——过程

6           过程 以为有银弹;按指南步骤去做(滋生进度谎言);完全忽略文档,或文档驱动。   6.1   首要原则 6.1.1   成功项目的特征          成功的软件...

面向对象分析过程案例实战

这是我在csdn博客的第2篇技术文章,本来按原计划是要介绍开源ajax框架buffalo的第2部分,即js的序列化,这里面涉及不少设计模式的运用和JAVA SE知识,代码精简,比较精彩。但是由于个...

PHP程序61条面向对象分析设计的经验原则

你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起 。 ----- Arthur J.Riel (1)所有数据都应该隐藏在所在...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux c面向对象分析
举报原因:
原因补充:

(最多只允许输入30个字)