1.什么是C++

c++是一门流行的计算机编程语言

index | TIOBE - The Software Quality Company

可以看出C++的排名相对于Python、Java、C来说并不突出,很大的原因是因为C++难度过大

但是c++对性能很重视这是有利于我们进行工业部署的,其他语言相对易用性好。如果你可以用其他语言解决问题,不建议使用c++。

工具

cppreference.com:这是一个C++最具权威的百科全书;

Compiler Explorer (godbolt.org) :在线代码编辑,可以直接生成汇编代码,可选择不同的编译器和版本,功能强大;

C++ Insights (cppinsights.io) :一个可以将C++代码及逆行翻译的网页,具体化代码高级功能;

C语言的扩展

1.关注性能

与底层硬件紧密结合

在硬件底层,存放内存的地址分为大端法和小端法,而C++可以很好的适应不同硬件的存储方式,相比来说,JAVA就不考虑这些,导致数据存放到内存还需要再做一些处理,会增加一定的时间;

2.对象生命周期的精确控制

使用C++与C#做比较,对于C#而言,使用完一个对象并不用关注销毁,底层会自动进行销毁(垃圾回收机制);而C++从对象的创建、使用到销毁都需要使用者自己执行,不需要系统额外引用机制;这里有两个需要平衡的点,也就是易用和性能,这两者是有一定取舍的,造成这处理异常不同的原因就是生命周期精确控制引发的,Finally主要是用来显式销毁对象;对生命周期的精准控制的好处:能够及时释放资源,并且不需要额外资源(线程)进行垃圾回收,提高了性能;

3.Zero-overhead Abstraction

主要有以下两点:

不需要为没有使用的语言特性付出代价
例如虚函数,或者说在堆或栈构造对象

使用一些语言特性不等于付出运行期成本
我们调用函数并没有付出函数中的运行成本,这也是由于函数在编译期执行;

扩展

引入大量特性,便于工程实践

三种编程范式:面向过程、面向对象、泛型
函数重载、异常处理、引用

c++ 有不断的衍进的标准集合

c++98/03,c++11,c++14,c++17,c++20,c++23 …

语言本身在不断的改进

em:
memory model

lambda expression

标准库也在不断改进

em:
type_traits/ranges

删除了auto_ptr

c++ 标准的工业界实现

msvc/gcc/clang ...

每个编译器可能标准并不完全尊照标准

不同的编译器有着各自的差异

所以我们不能脱离具体的语境讨论c++

c++编写程序要注意

1.性能

2.标准

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值