C++系列一: C++简介

简介: C++系列一: C++简介


C++ 是一种高级编程语言,是C语言的扩展和改进版本,由Bjarne Stroustrup于1983年在贝尔实验室为了支持C语言中的面向对象编程而创建。C++ 既能够进行底层的系统编程,也可以进行高层次的应用程序开发。

C++ 有丰富的语法特性,包括类、虚函数、模板、多重继承、多态等等特性,可用于操作系统、网络通信、嵌入式开发、游戏开发、桌面应用程序开发、图形图像处理等领域。

1. C++语言的特点

C++语言作为一种面对对象语言,具有面向对象开发的三大特性:

  • 封装性:屏蔽内部细节,只表现外部行为。(基础)
  • 继承性:派生类继承基类属性和服务。(关键)
  • 多态性:向不同类对象发同一消息,产生不同行为。(补充)

类和对象:类是具有相同属性和服务的若干对象的集合,对象是某个类的一个实例

此外,C++语言还具有以下特点:

  • 可移植性:C++ 的代码可以跨平台运行,即一段 C++ 代码可在不同的操作系统上编译运行。这是因为 C++ 的编译器可以将源代码转换成目标代码,目标代码可在不同的机器上执行。
  • 可扩展性:C++ 支持多项编程范式,包括面向过程、面向对象和泛型编程等,这些编程范式可以让程序员以不同的方式组织代码,使得 C++ 可以适用于各种应用场景。
  • 代码重用性:C++ 支持模板和抽象类等特性,这些特性可以让程序员编写可重用的代码。在 C++ 中可定义一些通用类型或函数,然后在其他地方重复使用这些通用类型或函数。

2. C++编译器

学习 C++ 需要先安装一个 C++ 编译器。C++ 编译器可以将源代码转换成可执行文件,让程序在计算机上运行。以下是几种常见的 C++ 编译器:

  • GCC:GNU Compiler Collection 是一个自由软件的编译器,支持多种语言(其中包括 C++)。GCC 以 ANSI C 语言为基础开发,在许多 Unix 和 Linux 系统上被广泛使用。
  • Clang:Clang 是用于 C、C++、Objective-C 和 Objective-C++ 的可移植编译器前端。它是 LLVM 项目的一部分,能够生成高质量的代码和非常详细的错误信息。
  • Visual C++:Visual C++ 是微软公司推出的用于 Windows 平台的 C++ 编译器,被广泛应用于 Windows 操作系统、桌面应用、游戏开发、嵌入式系统开发等领域(下载地址)。
  • Intel C++ Compiler:Intel C++ Compiler 是 Intel 公司开发的 C++ 编译器,支持多个平台,包括 IA-32、Intel 64、IA-64、ARM 和 MIPS 等。

不同的操作系统和编译器可能有不同的安装方式和配置方法,安装过程中,需要仔细阅读安装向导和相关文档,并根据实际情况进行设置和调整。

3. 第一个 C++ 程序

(1)Hello World

打开一个文本编辑器,输入以下代码:

#include <iostream>
int main()
{
    std::cout << "Hello, world!" << std::endl;
    return 0;
}

执行这个程序输出

“Hello, world!”

(2)C++文件组成

C++ 文件主要包括文件头、预处理指令、全局变量、函数定义四个部分。

  • 文件头:包含了版权声明、作者、日期等信息,通常以注释的形式出现在文件的开头。
  • 预处理指令:用来引入头文件、宏定义、条件编译等操作,对代码进行预处理。
  • 全局变量:程序中定义的在函数外部的变量被称为全局变量,可以在整个程序中访问。
  • 函数定义:C++ 程序通过不同的函数来实现不同的功能。函数的定义包括函数名、形参、函数体和返回值类型。函数定义一般放在主函数之前。

C++ 支持两种注释:单行注释多行注释。单行注释以“//”开头,直到行尾结束;而多行注释以“/”开头,“/”结尾,可跨越多行。

// 这是一个单行注释
/*
这是一个
多行注释
*/

(3).cpp文件的执行

C++ 程序是一种编译型语言,要想将程序转化成能够在计算机上执行的二进制代码,必须先将 C++ 程序源代码进行编译和链接。

.cpp 是 C++ 程序源代码文件的文件扩展名,用编辑器编写 C++ 源代码,将其保存成 .cpp 文件,.cpp文件从编辑到执行的基本流程:

  • (1)将 .cpp 文件作为源代码,使用 C++ 编译器进行编译。在编译过程中,编译器会进行词法分析、语法分析、生成中间代码等操作,并将结果保存在目标文件中。
  • (2)将生成的目标文件与库文件进行链接,生成可执行文件(即 .exe 文件)。链接的过程主要包括符号解析、重定位等操作,最终生成可以在计算机上运行的二进制代码。
  • (3)用户双击 .exe 文件或者使用命令行执行可执行文件时,操作系统会启动进程,并在进程内部执行程序。进程启动后,操作系统会将可执行文件的二进制代码装载到进程的虚拟内存空间中,然后根据程序入口点开始执行。
  • (4)程序开始执行后,首先会执行 main 函数中的代码。main 函数是程序的入口函数,因此所有的程序逻辑都应该从这里开始执行。
  • (5)程序执行完毕后,将会退出进程,并清理所占用的系统资源,例如内存、句柄等。

由于 C++ 语言的高效、快速和稳定性,它在很多行业中被广泛应用,人才需求非常大。而且学习 C++ 可以更深入地了解计算机底层的工作原理,对于想从事底层开发或优化等领域的程序员来说非常重要。

4. 总结(手稿版)

20年前学习C++语言的幼稚记录

相关文章
|
2天前
|
C语言 C++
C++ 简介
C++ 简介
32 20
|
1月前
|
存储 算法 Linux
【c++】STL简介
本文介绍了C++标准模板库(STL)的基本概念、组成部分及学习方法,强调了STL在提高编程效率和代码复用性方面的重要性。文章详细解析了STL的六大组件:容器、算法、迭代器、仿函数、配接器和空间配置器,并提出了学习STL的三个层次,旨在帮助读者深入理解和掌握STL。
52 0
|
2月前
|
算法 安全 Linux
【C++STL简介】——我与C++的不解之缘(八)
【C++STL简介】——我与C++的不解之缘(八)
|
3月前
|
C++
C++(十八)Smart Pointer 智能指针简介
智能指针是C++中用于管理动态分配内存的一种机制,通过自动释放不再使用的内存来防止内存泄漏。`auto_ptr`是早期的一种实现,但已被`shared_ptr`和`weak_ptr`取代。这些智能指针基于RAII(Resource Acquisition Is Initialization)原则,即资源获取即初始化。RAII确保对象在其生命周期结束时自动释放资源。通过重载`*`和`-&gt;`运算符,可以方便地访问和操作智能指针所指向的对象。
|
4月前
|
存储 算法 编译器
|
6月前
|
存储 算法 C++
C++一分钟之-标准模板库(STL)简介
【6月更文挑战第21天】C++ STL是高效通用的算法和数据结构集,简化编程任务。核心包括容器(如vector、list)、迭代器、算法(如sort、find)和适配器。常见问题涉及内存泄漏、迭代器失效、效率和算法误用。通过示例展示了如何排序、遍历和查找元素。掌握STL能提升效率,学习过程需注意常见陷阱。
74 4
|
5月前
|
存储 算法 数据处理
【C++】STL简介
**STL是C++标准库的关键部分,源于Alexander Stepanov的泛型编程研究。它提供了数据结构(如vector、list)和算法,是高效、通用的软件框架。STL始于惠普,后由SGI发展,现已成为C++1998标准的一部分并不断进化。它包括容器、迭代器、算法、仿函数、配接器和分配器六大组件,带来高效性、通用性和可扩展性,但也存在性能开销和学习难度。学习STL涉及理解底层数据结构、用法、实现和实践。推荐[cplusplus.com](https://cplusplus.com)作为学习资源。**
|
6月前
|
存储 算法 编译器
程序与技术分享:C++模板元编程简介
程序与技术分享:C++模板元编程简介
55 0
|
6月前
|
算法 编译器 Linux
【C++】:模板初阶和STL简介
【C++】:模板初阶和STL简介
31 0
|
7月前
|
存储 算法 搜索推荐
C++|STL简介-string-vector基础运用
C++|STL简介-string-vector基础运用