面向对象的编程思想

最近几天看了一个开源的代码库,使用C语言写的。里面的结构和之前看到的不太一样,后来才发现是采用了面向对象思想的实现方式。顿时有所感悟:


面向对象从来都是一种思想,它不局限于语言。说C是面向过程的,C++是面向对象的,其实说的是C在语法层次上不直接支持面向对象,而并不是说C语言不能写出面向对象的程序。而C++相当于在语法上直接支持了面向对象。由此回想起,找工作时,有人被问到的一道面试题,要求用C写一个类。原来如此啊。


面向对象思想的三大特点是:封装,继承,多态。用C语言去实现一个C,比较简单的是形式是,用结构体封装成员变量,而对于成原函数,则使用函数指针来实现。对于继承,通常是子类中存在一个父类的变量,从而实现继承,动态则通过void*来实现。(这是很简单的方法,当然很多情况,如果不对,还请大家指正)。


其实想想也是,操作系统这么大的工程,用C语言和汇编实现。其中肯定存在面向对象的应用场景的。gtk的实现,也是一个很好的学习案例。而且我有搜到了一本电子书OOC,面向对象的C语言,哈哈,一看时间1993年,也就是说很早很早,人家就开始这么写啦。接下来要好好读读这本书了。

你可能感兴趣的:(面向对象的编程思想)