这篇文章主要讲解了“C++基础概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++基础概念是什么”吧!
首先,通过一张最新(2021.11)的编程语言排名图来了解常见的编程语言:
从图中可以看出,C++的排名相对于Python、Java、C来说并不突出,很大的原因是因为C++难度过大,也可以说是知识点太多,我们很难说能精通C++这门语言,只能说对它的部分了解,并能在工作中使用;
1、cppreference.com:这是一个C++最具权威的百科全书,但只有英文模式,相信大家可以看懂的;
2、Compiler Explorer (godbolt.org) :在线代码编辑,可以直接生成汇编代码,可选择不同的编译器和版本,功能强大;
3、C++ Insights (cppinsights.io) :一个可以将C++代码及逆行翻译的网页,具体化代码高级功能;
简单来说,C++是C语言的扩展,主要有以下两方面;
首先关注性能方面,这是继承于C语言的特性:
与底层硬件紧密结合
对象生命周期的精确控制
Zero-overhead Abstraction
接着是扩展部分,引入大量特性,便于工程实践
三种编程范式:面向过程、面向对象、泛型
函数重载、异常处理、引用
最后,C++也是一系列不断演进的标准集合
C++98、C++11、C++14、C++17、C++20、C++23?
语言本身的改进(例如Memory Model、Lambda Expressiomn)
标准库的改进(auto_ptr、type_train/ranges)
C++标准的工业实现(MSVC、GCC、Clang)等编译器还存在差异;
下面通过具体案例来说明上面列出的点
运行其中的案例可以发现,输出的数从大到小;
其实在硬件底层,存放内存的地址分为大端法和小端法,而C++可以很好的适应不同硬件的存储方式,这样有助于提升性能,相比来说,JAVA就不考虑这些,导致数据存放到内存还需要再做一些处理,会增加一定的时间;
这里我们使用C++与C#做比较,对于C#而言,使用完一个对象并不用关注销毁,底层会自动进行销毁(垃圾回收机制);而C++从对象的创建、使用到销毁都需要使用者自己执行,不需要系统额外引用机制;这里有两个需要平衡的点,也就是易用和性能,这两者是有一定取舍的;
下面是C++和C#对于异常的处理方式:
造成这处理异常不同的原因就是生命周期精确控制引发的,Finally主要是用来显式销毁对象;
对生命周期的精准控制的好处:能够及时释放资源,并且不需要额外资源(线程)进行垃圾回收,提高了性能;
主要包含以下两点:
不需要为没有使用的语言特性付出代价
例如虚函数,或者说在堆或栈构造对象,可以通过这个例子来理解:Compiler Explorer (godbolt.org)
使用一些语言特性不等于付出运行期成本
可以通过这个例子来理解:Compiler Explorer (godbolt.org)
我们调用函数并没有付出函数中的运行成本,这也是由于函数在编译期执行;
感谢各位的阅读,以上就是“C++基础概念是什么”的内容了,经过本文的学习后,相信大家对C++基础概念是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。