用面向对象的角度反观c++

用面向对象的角度反观c++
1 函数的公有私有
在c里通过上面来区分共有和私有呢?
强调一下c的私有是相对于文件的,物理结构的私有。
私有:static
公有:extern
那么保护呢,保护本身就不是物理层能够解决的东西。
保护在c++是通过逻辑层控制达到的,c无法做到。
另外因为指针和指针函数的存在,真正的越权其实并不难,因为任何权利在指针面前有黯然失色。
在指针的面前是没有权限的,这是c++有c继承来的优势,也是被人诟病的地方。
2 类和对象,数据和函数
在c++中机能和数据进行了封装,封装的结果就是对象,对象实际上相对于类而言,是数据。
因为机能函数对任何对象是公共部分。
也就是说c++中,类代表机能。
对象代表函数。
那么在c中呢,数据和机能是完全分开的。数据一般是结构体。如果和对象做比较的话。
结构数组里的每个成员一般就相当于对象了。
而对应于处理和依赖数据的函数,是全部的结构数组共有的,就像是数据加工的工具。
3 为什么linux选择了c而没有选择c++
当是在网上看到一片linux之父抨击c++的文章。
我其实是很为c++报不平的。
首先从系统开发的角度讲,系统内核开发的东西面对的是啥,是硬件设备,这些设备对于系统来说,有重载,继承,多态这些东西吗?
想是没有的,即便能在开发中有这些逻辑关系的体现也是很少的。
硬件对系统是完全公开的,不存在任何的私有函数和私有数据。
所以用c写系统内核几乎没有什么劣势。
也就是说c++相比c的优势,在写系统内涵的过程中几乎用不到。
那么系统之上呢,计算机几乎已经能够完整的描述整个世界了,你有c去写。
能做到吗?
面向对象的价值,在软件行业是一个必须的进步。无疑目前用面向对象语言描述的这个世界,比系统内涵是要丰富的多的。
所以,站在内核的角度否定c++,否定面向对象技术是不公平的。
Linux之父炮轰C++:糟糕程序员的垃圾语言

猜你喜欢

转载自blog.csdn.net/xie__jin__cheng/article/details/88997266