为什么C++会成功?

简介:        最近,我在看《C++编程思想》,里面提到了C++成功的七个原因。我将在这篇文章中进行简单的说明。        C++成功的原因是经济上的:转变到OOP(面向对象编程)需要代价,而转变到C++所花的代价较小。

       最近,我在看《C++编程思想》,里面提到了C++成功的七个原因。我将在这篇文章中进行简单的说明。


       C++成功的原因是经济上的:转变到OOP(面向对象编程)需要代价,而转变到C++所花的代价较小。


       C++的目的是提高效率。C++成功是因为它立足于实际:尽可能地为程序员提供最大便利。


       1. 较好的C

       C++堵塞了C语言中的一些漏洞,并提供更好的类型检查和编译时的分析。


       C++有一个性能,称为references(引用),它允许对函数参数和返回值的地址进行更方便的处理。函数重载改进了对名字的处理,使程序员能对不同的函数使用相同的名字。另外,名字空间也加强了名字的控制。


       2. 采用渐进的学习方式

       C++是对C的扩充,而不是新的文法和新的程序设计模型。程序员学习和理解这些性能,逐渐应用并继续创建有用的代码。这是C++成功的最重要的原因之一。


       已有的C代码在C++中仍然是有用的。


       3. 运行效率

       C++不仅有与C相同的基本控制能力,面向对象的C++程序的速度与用C写的程序速度相差在±10%之内,而且常常更接近。


       4. 系统更容易表达和理解

        程序员所涉及的是较高层的概念,一行代码能做更多的事情。


       易于表达所带来的另一个好处是易于维护。


        5. “库”使你事半功倍

       创建程序的最快方法是使用已经写好的代码:库。C++的主要目标是让程序员能更容易地使用库,这是通过将库转换为新数据类型(类)来完成的。引入一个库,就是向该语言增加一个新类型。


        因为程序的各部分之间名字是隔离的,所以程序员想用多少库就用多少库。


       模板的源代码重用:一些重要的类型要求修改源代码以便有效地重用;模板可以自动完成对代码的修改,因而是重用库代码特别有用的工具。


        6. 错误处理

        C++的异常处理保证能检查到错误并进行处理。


        7. 大程序设计

        设计C++的目的是为了辅助大程序设计,也就是说,去掉小程序和大程序之间复杂性的分界。
目录
相关文章
|
8月前
|
机器学习/深度学习 缓存 并行计算
RetNet:万众期待的 Transformers 杀手
RetNet:万众期待的 Transformers 杀手
184 0
|
11月前
|
大数据 Linux 虚拟化
克隆虚拟机
克隆虚拟机
|
12月前
|
Java 测试技术
《Java单元测试实战》——编写方法:Java编程技巧之单元测试用例编写流程(2)
《Java单元测试实战》——编写方法:Java编程技巧之单元测试用例编写流程(2)
125 0
|
12月前
|
jenkins 持续交付 Go
iOS Jenkins打包报错401 Authentication credentials are missing or invalid.解决办法
iOS Jenkins打包报错401 Authentication credentials are missing or invalid.解决办法
165 0
|
缓存 前端开发 JavaScript
React哲学思想
React是用JavaScript构建快速响应的大型Web应用程序的首选方式。由于前端我们是无法改变加载的网速,但是我们可以通过加入view界面提示加载,这样在响应的过程中不会让用户一直处于空白界面的状态。可以调用React中Lazy&Suspence来实现。如果项目崩溃或者网络崩溃的时候,可以使用ErrorBondary,展示出自己定义渲染的“错误”的UI界面
5273 1
|
Rust IDE Java
【RUST学习日记】第4课 Rust规范
【RUST学习日记】第4课 Rust规范
【RUST学习日记】第4课 Rust规范
解决办法:defined but not used [-Werror=unused-variable]
解决办法:defined but not used [-Werror=unused-variable]
600 0
|
计算机视觉 C++ Python
解决ModuleNotFoundError: No module named ‘skimage‘问题
解决ModuleNotFoundError: No module named ‘skimage‘问题
2467 0
解决ModuleNotFoundError: No module named ‘skimage‘问题
|
数据采集 SQL 关系型数据库
最佳实践—如何优化数据全量抽取
本文介绍了在应用内通过代码高效抽取数据的方法。
213 0
|
关系型数据库 MySQL Go
字段加密后长度变化
字段加密后长度变化
294 0