C没有C++的封装和继承,所以程序的架构是会有差别的
大道至简 发表于 2009-11-2 12:04
封装和继承是一种编程思想,而不是某种程序语言的特有行为
既然是一种思想,那么即便用汇编也可以表达,就像你要对女孩儿说“我爱你”的话,你用中文可以说,难道用英文说出来就变成“我恨你了”吗?
C语言的程序也可以体现封装和继承的思想,而且可以体现的很好。
C++的先进性在于他对封装和继承的思想做了强制约束,使它的的实现不在依赖于编程者的思维方式,而是用更为通用的模板,这样提高了程序的可读性和可维护性还有安全性。但这些为了安全性可维护性可读性做的强制约束,并不是封装和继承的本质,而是为了实现它的一种手段。
其实研究下编程语言的发展就知道,总是从提高可读性和可维护性的角度出发,但对于编程思想的体现,我认为任何语言都是可以的。
所以,不是面向对象的语言,也可以写面向对象的程序,只是那些支持面向对象的语言,有更好更清楚更安全的表达方式而已。面向对象也只是一种思想,而不是某种语言的语法,我最开始学习面向对象的时候,那本书是用伪代码写的。
如果觉得面向对象就一定是C++,C#,java的人,我只能说没有学到本质,面向对象思想和编程语言无关,这就是为什么有UML这种东西的存在,而且很流行。 |