C语言大型软件设计的面向对象

来源:互联网 发布:梦三国2mac版本 编辑:程序博客网 时间:2024/05/18 03:43

C 原本是面向过程的语言,自身没有內建面向对象的特性,但我们还是可以利用 C 语言本身已有的特性来实现面向对象的一些基本特征。

今天我们给大家推荐一门《C语言大型软件设计的面向对象》课程,11月16日(下周四)宋宝华老师将线上直播,与您讨论 C 语言面向对象的技术难点、疑点。


1.面向对象的概念


面向对象的语言-


与已往的各种语言的根本不同是,它的设计出发点就是为了更能直接的描述问题域中客观存在的事物。


一切皆对象,对象来源于生活高于生活。


将功能封装进对象,强调具备了功能的对象。


面向对象是基于面向过程的。


是一种符合人们思考习惯的思想,可以将复杂的事情简单化,将程序员从执行者转换成了指挥者


面向对象的特征:


①封装(encapsulation)。封装是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。封装有四大好处:

  • 良好的封装能够减少耦合。
  • 类内部的结构可以自由修改。
  • 可以对成员进行更精确的控制。
  • 隐藏信息,实现细节。

②继承(inheritance)。继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。


③多态(polymorphism)。所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。



2.C语言实现封装、函数指针


在C语言当中,是不存在封装这一个特性的,我们要实现它,我们可以借助两个方法:

① 利用C语言中的头文件,在头文件中进行声明,在C文件中对它进行定义,这样就可以隐藏内部信息,用户只能看到接口和公开的信息,无法知道对象所占内存等。

② 第二种方法是把私有的信息放在一个不透明的私有变量或者结构体当中,只有类的实现代码才知道priv或者结构体的真正定义。 

在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。函数指针是通过函数名及有关参数进行调用的。

3、从一个命令解析器的案例开始

a. 过程化程序设计

b. 采用封装思想设计

4.一个嵌入式图形框架的C面向对象


5.C语言实现继承和多态,模拟虚函数

6.提炼软件的中间层

7.综合案例,对象式思维锻炼

更多细节,您可以点击下方课程入口进入了解:


<<<<<<<<<<<<<<<<<<<<<在线系列课>>>>>>>>>>>>>>>>>>>>

C语言大型软件设计的面向对象

讲师介绍:

宋宝华老师有10几年的Linux开发经验。他长期在著名跨国企业担任一线工程师和系统架构师,编写大量的Linux代码,并负责审核其他同事的代码。他是Linux的活跃开发者,在Linux主线内核提交了4万行以上的代码和几百个补丁,曾担任一ARM SoC在Linux社区的maintainer工作。他也是China-pub 2008年度“十大畅销经典”,“十佳原创”图书《Linux设备驱动开发详解》的作者,他曾为许多知名企业提供嵌入式Linux企业培训和技术服务,受到企业广泛好评。

课程介绍:

C语言代码一旦达到一定规模,就特别强调良好的架构设计,以保证代码的可读性好、代码简洁以及可复用。此时,软件设计师势必要用C语言来做面向对象的设计。不能克服面向对象这一关,也是很多人无法读懂Linux内核、驱动等架构比较庞大的软件的主要技术壁垒之一,因为这些软件里面充满了对象式的设计。 本课程以案例来详细讲解,用C语言如何设计面向对象的程序。

课程特色:专属答疑+课件资料提供+视频无限时回放+VIP交流群

开课时间:随到随学,自由支配



原创粉丝点击