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

简介:

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

1.13 面向对象编程语言的要求

C++面向对象高效编程(第2版)
现在,可以从支持面向对象编程的角度来研究编程语言了。什么语言可以成为面向对象编程语言?

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

数据抽象

封装

继承

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

表 1-2
image

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

相关文章
|
1天前
|
C++
面向对象的C++题目以及解法2
面向对象的C++题目以及解法2
8 1
|
2天前
|
缓存 编译器 API
NumPy与其他语言(如C/C++)的接口实践
【4月更文挑战第17天】本文介绍了NumPy与C/C++的接口实践,包括Python与C/C++交互基础、NumPy的C API和Cython的使用。通过案例展示了如何将C++函数与NumPy数组结合,强调了内存管理、类型匹配、错误处理和性能优化的最佳实践。掌握这些技能对于跨语言交互和集成至关重要。
|
11天前
|
程序员 C++
C++语言模板学习应用案例
C++模板实现通用代码,以适应多种数据类型。示例展示了一个计算两数之和的模板函数`add<T>`,可处理整数和浮点数。在`main`函数中,展示了对`add`模板的调用,分别计算整数和浮点数的和,输出结果。
10 2
|
11天前
|
存储 人工智能 机器人
【C++面向对象】C++图书管理系统 (源码)【独一无二】
【C++面向对象】C++图书管理系统 (源码)【独一无二】
|
16天前
|
存储 人工智能 BI
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】
|
24天前
|
算法 IDE Java
【软件设计师备考 专题 】面向对象程序设计语言:C++、Java、Visual Basic和Visual C++
【软件设计师备考 专题 】面向对象程序设计语言:C++、Java、Visual Basic和Visual C++
39 0
|
24天前
|
Java API 开发工具
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(三)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
30 0
|
24天前
|
Java 数据处理 数据库
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(二)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
34 0
|
21天前
|
存储 C++ 容器
C++入门指南:string类文档详细解析(非常经典,建议收藏)
C++入门指南:string类文档详细解析(非常经典,建议收藏)
31 0
|
21天前
|
存储 编译器 C语言
C++入门: 类和对象笔记总结(上)
C++入门: 类和对象笔记总结(上)
31 0