OO Programing in C (2)

原创 2011年03月27日 19:16:00

OO Programing in C is not only POSSIBLE but also PRACTICAL
--------------------------------------------------------------------------------

OO的一个亮点是类的"继承",通过"继承",可以重用许多代码。而且"继承"也是现实生活中非常自然的一种关系。但是很不幸,C没有class,更没有提供"继承"的表达方式。既然能用C的struct来仿真class, 那能不能继续来仿真"继承"呢?答案是:possible。就像<<Inside the C++ Object Modal>>书中所叙述的那样——你可以用C来达到所有C++能做到的事。但这种仿真显然毫无实际应用价值。

"继承"是一种表达方式,代码重用才是目的。

为了重用代码,C++可以用"继承"的方式来巧妙的达到目的,但是也必须付出代价:你必须非常仔细地设计你的类族谱,要有前瞻性,要有可扩展性,要决定分多少个层次....这些都不是容易做到的事。

C别无选择,模块化设计,函数,宏....只能通过巧妙的设计才能达到代码可重用的目的。还是举个例子来说明C是如何做到"殊途同归"的吧。

"链表"是一个非常常用的数据结构,常用于管理无序的数据(对象)集合。链表操作,特别是双向链表操作很容易出错。重用一套通用操作链表的代码可以为我们省不少事。在C++中,我们可以用经典的STL中的list类。为了适应各种数据类型,list类用模板来实现。list类实现的很巧妙,功能很强,但是,不得不说,很少人用。其实不仅list类很少用,STL都很少人用。(希望这是我的一家之言,反正我所熟悉的C++程序员都不怎么用STL :-)当然在C++中你还有另外一个选择:实现一个List基类完成链表操作,要放入链表的类从List类继承而来,就拥有了一套操作list的方法。

Linux内核中用C提供了一套非常巧妙的方法操作链表,位于.../linux/include/linux/list.h,只用一些宏和inline函数来实现双向链表。

相关文章推荐

EEPROM with I2C programing

  • 2010年12月06日 22:06
  • 2KB
  • 下载

The C Programing Language (2nd)

  • 2008年03月26日 16:22
  • 3.86MB
  • 下载

Day 1 :start C Language Programing course

时间:2017年1月17日 习题日 内容学习: 1、了解基础嵌入式概念,定义及相关环境。 2、Linux c编程环境下,熟悉主要命令操作。 3、c语言内容巩固,实际Linux c环境下运行简单程序...
  • adver_J
  • adver_J
  • 2017年01月17日 19:06
  • 144

Expert C Programing—阅读笔记一

第一章 C:穿越时空的迷雾 (1)在宏的扩展中,空格会对扩展的结果造成很大的影响。 #define a(y)  a_expanded(y) a(x); 被扩展为:a_expanded(x); ...

the c programing language 1-23 删除注释

/* * K&R2 1-23 * Author: Donmmi * 程序说明: * 代码核心: * 摘自中文版书参考手册A.2.2注释一节 * ...

Modern Programing with C++0x in VC10—VC 2010中语言和库的更新概要

看的是一个来自微软的视频教程,记录笔记如下: Language and Library updates C++0x and TR1 TR1 is the Technical Report 1, ...

Expert C Programing——阅读笔记四

第五章  对连接器的思考 (1)目标文件并不能直接执行,它首先需要载入到链接器中。链接器确认main函数为初始进入点(程序开始执行的地方),把符号引用(symbolic reference)绑定到内...

the c programing language 1-22 较长输入行折成短些的多行,非缓冲方式实现

/*  * K&R2 1-21  * Author: Donmmi  * Email:teddy_liu@live.com * 程序说明: 代码核心部分:折行后的当前行长度为未输出...

c primer plus 4th edition Programing Exercises answer(chapter 6)

c primer plus 第四版课后习题答案 chapter 6 Write a program that creates an array with 26 elements and stor...

The C programing language chapter 6 : struct

the chap6 struct1. basics of structures//1. define a struct way 1:struct point { int x; int...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OO Programing in C (2)
举报原因:
原因补充:

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