C++编程:从基础到进阶
立即解锁
发布时间: 2025-08-19 01:36:26 订阅数: 6 

C++面向对象编程入门与实践
# C++ 编程:从基础到进阶
## 1. C 与 C++ 的差异
C 和 C++ 虽有联系,但实际差异超乎想象。尽管能用 C++ 写出类似 C 的程序,但鲜有人这么做。C++ 程序员不仅运用 C++ 新特性,对传统 C 特性的使用比例也和 C 程序员不同。
若已掌握 C,学 C++ 会有先发优势,但很多内容仍是新的。要尽快开始编写面向对象编程(OOP)程序,需先了解 C++ 从 C 继承来的传统部分,如变量、输入输出、控制结构、函数和结构体等。即便熟悉 C,也别跳过这些内容,因为 C 和 C++ 存在明显或细微的差异,应重点关注这些不同之处。
OOP 具体讨论从“对象与类”开始,之后的示例都将是面向对象的。
## 2. 统一建模语言(UML)
UML 是用于对计算机程序建模的图形化“语言”,能在不陷入代码细节的情况下,直观呈现程序的高层组织。它源于三种建模语言,由 Grady Booch、James Rumbaugh 和 Ivar Jacobson 各自创建,后来 Rumbaugh 和 Jacobson 加入 Booch 所在的 Rational 公司,将三种语言统一为 UML,并被对象管理组织(OMG)采用。
使用 UML 的原因在于大型程序中,仅看代码很难理解各部分间的关系。OOP 虽优于过程式编程,但理解程序功能仍需大量研究代码。而 UML 能提供程序主要部分及其协作方式的整体视图。
UML 包含多种图表,如类图、对象图、序列图、用例图等,从不同角度展示程序及其操作。它不仅助于理解程序,还可用于程序的初始设计,在软件开发的各个阶段都很有用。UML 并非软件开发过程,而是审视软件开发的一种方式,尤其适用于 OOP。
UML 特性的介绍分阶段进行:
|章节|UML 特性|
| ---- | ---- |
|第 1 章|UML 介绍|
|第 8 章|类图、关联和可导航性|
|第 9 章|泛化、聚合和组合|
|第 10 章|状态图和多重性|
|第 11 章|对象图|
|第 13 章|更复杂的状态图|
|第 14 章|模板、依赖关系和构造型|
|第 16 章|用例、用例图、活动图和序列图|
```mermaid
graph LR
A[第 1 章: UML 介绍] --> B[第 8 章: 类图等]
B --> C[第 9 章: 泛化等]
C --> D[第 10 章: 状态图等]
D --> E[第 11 章: 对象图]
E --> F[第 13 章: 复杂状态图]
F --> G[第 14 章: 模板等]
G --> H[第 16 章: 用例等]
```
## 3. C++ 编程基础:起步准备
编写 C++ 程序,需掌握基本程序构造、变量和输入输出等基础知识。C++ 风格可能比 BASIC 或 Pascal 更简约,初看像数学公式,但熟悉后会觉得其他语言过于花哨冗长。
可使用 Microsoft 或 Borland 编译器,编译器将源代码转换为可执行文件。源文件是扩展名为 .CPP 的文本文件,对应书中代码;可执行文件扩展名为 .EXE,能在编译器内或 DOS 窗口运行。Microsoft 编译器或 MS - DOS 窗口中程序可直接运行,使用 Borland 编译器需稍作修改,确保输出能在屏幕停留,具体方法见相关附录。
## 4. 基本程序构造
以简单的 C++ 程序 FIRST 为例,其源文件为 FIRST.CPP,功能是在屏幕打印一句话。
```cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Every age has a language of its own\n";
return 0;
}
```
### 4.1 函数
函数是 C++ 的基本构建块,FIRST 程序主要由 `main()` 函数构成。函数名后括号是其特征,括号用于容纳函数参数。`main()` 前的 `int` 表示该函数返回值类型为整数,后续会详细学习数据类型和返回值。
函数体由花括号包围,作用类似其他语言的 `BEGIN` 和 `END`,用于界定程序语句块。运行 C++ 程序时,首个执行语句是 `main()` 函数开头,若程序中无 `main()` 函数,运行会报错。多数 C++ 程序中,`main()` 调用对象的成员函数或其他独立函数来完成实际工作。
### 4.2 程序语句
程序语句是 C++ 编程的基本单元,FIRST 程序中有两条语句:
- `cout << "Every age has a language of its own\n";`:在屏幕显示引号内短语。
- `return 0;`:告诉 `main()` 函数返回值 0 给调用者(操作系统或编译器)。
语句以分号结尾,这是关键语法,易被忽略。与某些语言不同,C++ 中语句结束不以行尾为准。
### 4.3 空白字符
C++ 编译器几乎完全忽略空白字符(如空格、回车、制表符等),可将多条语句写在一行,或把一条语句跨多行书写,编译器都能正确编译。但预处理指令(如 `#include` 开头的行)必须写在一行,字符串常量也不能随意分行,如需长字符串常量,可在行尾插入反斜杠或分成多个字符串。
## 5. 使用 cout 输出
`cout << "Every age has a languag
0
0
复制全文


