天天看点

《C++面向对象高效编程(第2版)》——1.13 面向对象编程语言的要求

本节书摘来自异步社区出版社《c++面向对象高效编程(第2版)》一书中的第1章,第1.1节,作者: 【美】kayshav dattatri,更多章节内容可以访问云栖社区“异步社区”公众号查看。

c++面向对象高效编程(第2版)

现在,可以从支持面向对象编程的角度来研究编程语言了。什么语言可以成为面向对象编程语言?

任何声称支持面向对象编程的语言都必须提供易于设计和实现的特性:

所谓“易于”,指的是抽象和封装必须自然而然,不需要程序员在这上面花太多功夫。程序员通过语言的要素,应该很容易地实现优秀的抽象和提供数据封装。必须牢记,这些语言是设计用于支持oop的。

表 1-2

《C++面向对象高效编程(第2版)》——1.13 面向对象编程语言的要求

对于oop,继承是另一项非常重要的特性。不支持继承的语言不能成为面向对象编程语言。某些语言支持数据抽象和封装,但并不支持任何形式的继承。这样的语言不是面向对象编程语言,它们被称为基于对象语言(object-based language),虽然可以实现对象,但是,却无法通过继承扩展它们(如ada和modula-2等都属于这个范畴的语言)。注意,在c中也可以进行数据抽象和某种程度的封装。然而,这样的抽象和封装需要程序员做大量的工作,它并不是语言本身所具有的。实际上,oop在c中可以实现,甚至在汇编语言中也可以实现!这是一个实用性的问题。如果你打算使用oop,直接使用支持oop概念且检查机制较多的语言更为实际。记住,任何面向对象语言(object-oriented language)都是基于对象语言。

继续阅读