C++入门:从C到C++的过渡与关键概念

需积分: 10 1 下载量 4 浏览量 更新于2024-07-23 收藏 495KB PDF 举报
"C++编程语言的过渡与基础知识" C++是一种强大的、面向对象的编程语言,它是从C语言发展而来的,增加了许多高级特性。在从C过渡到C++的过程中,我们需要了解一些关键的概念和变化。 1. **包含头文件** 在C++中,标准输入输出流不再是通过`#include<stdio.h>`来实现的,而是使用`#include<iostream>`。`iostream`包含了`cin`和`cout`,它们分别用于标准输入和标准输出。同时,C++也支持C风格的头文件,但会自动包含相应的C++版本,如`#include<cstdio>`等。 2. **编译器** C++的编译器通常使用`g++`,它与C的`gcc`编译器不同,`g++`默认编译C++代码。如果需要在`gcc`中编译C++程序,需要指定链接C++标准库,命令为`gcc 文件名 -lstdc++`。 3. **扩展名** C++源代码文件的扩展名通常是`.cpp`,但也常见`.cc`、`.cxx`或`.C`。需要注意的是,在某些操作系统(如微软Windows)中,扩展名大小写不敏感,因此`.C`可能会引起混淆,不推荐使用。 4. **输入/输出流** C++引入了`iostream`库,提供了`std::cin`和`std::cout`对象进行输入输出操作。与C语言中的`scanf`和`printf`不同,`cin`和`cout`更易于使用,且具有类型安全性。例如,`std::cin`用于从标准输入读取数据,`std::cout`用于向标准输出打印。 5. **命名空间(命名空间)** C++引入命名空间(namespace)来解决全局命名冲突的问题。所有标准库的成员都在`std`命名空间中,如`std::cout`。在代码中,如果没有明确指定命名空间,就需要使用作用域解析运算符`::`来访问,如`std::endl`。在上述银行存款取款程序中,由于存在函数重名,可以通过命名空间来避免冲突,例如定义一个名为`abc`的命名空间,并将相关函数放在其中。 6. **函数重载** C++允许函数重载,即在同一作用域内可以有多个同名但参数列表不同的函数。在上述示例中,`save`和`draw`函数可以通过不同的参数类型或者数量来进行重载,以实现不同的功能。 7. **对象和类** 虽然上述例子没有直接涉及,但在C++中,面向对象编程的一个核心概念是类(class)。类可以看作是自定义的数据类型,它封装了数据和操作数据的方法。对象是类的实例,通过创建对象来使用类的功能。 8. **C++标准库** C++提供了丰富的标准库,包括容器(如`vector`、`list`)、算法、异常处理、文件I/O等,这些都位于`std`命名空间下,大大增强了编程的便利性和效率。 从C过渡到C++,需要理解并掌握C++特有的特性,如命名空间、输入输出流、对象和类、模板、异常处理等。这将帮助程序员更好地利用C++的强大功能来编写高效、可维护的代码。