C++基础(一)

121 阅读1分钟

C++ 介绍

什么是 C++

一门比较流行的编程语言

1.PNG

C 语言的扩展

  • 关注性能
  1. 与底层硬件紧密结合

例如:

2.PNG

在大小端层面,c++ 不做规定,与硬件保持一致;而 Java 等语言会规定大小端。

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

3.PNG

左图是 C++,由于对对象生命周期的精确控制,可以确保在 throw 之后,对象被销毁;

右图是 C#,由于对象生命周期无法精确控制,在对象打开某个资源之后,可能无法及时释放,所以需要在 Finally 之后释放资源。

  1. Zero-overhead Abstraction

    • 不需要为没有使用的语言特性付出成本

      • 虚函数(没有使用虚函数,就不需要付出额外的代价;而 C# 等语言则是默认继承 object);

      • godbolt.org/z/fq66hM (可以选择在堆上分配,也可以选择在栈上分配)。

    • 使用了一些语言特性不等于付出运行期成本

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

    • 三种编程范式:面向过程、面向对象、泛型

    • 函数重载、异常处理、引用

一系列不断衍进的标准集合

  • C++98/03,C++11,C++14,C++17,C++20,C++23 ?

  • 语言本身的改进

    • Memory Model

    • Lambda Expression

  • 标准库的改进

    • type_traits / ranges

    • auto_ptr

C++ 标准的工业界实现

不能脱离具体的语境讨论 C++

编写程序时要注重

  • 性能

  • 标准