C++ 兼容 C 语言,这意味着我们可以在 C++ 环境下编写 C 代码。了解其基础概念对于掌握这门语言至关重要。
一、命名空间
在 C++ 中,标识符(变量、函数、类等)的查找遵循作用域规则:编译器从当前最内层作用域开始查找,找到即止。如果同一作用域下存在同名标识符,就会引发冲突。
1. 解决冲突
例如,stdlib.h 中有 rand 函数。如果在局部定义 int rand = 10;,由于局部优先,代码能执行;但如果是全局定义,则与库函数冲突导致编译报错。
命名空间就是为解决此类冲突设计的'自定义域'。
语法:
namespace 命名空间名 {
// 自定义标识符
}
访问时使用 命名空间名::标识符。
2. 嵌套与使用
命名空间可以嵌套,形成层级结构。若需简化调用,可使用 using 关键字。
- 指定成员:
using 命名空间名::成员; - 全部展开:
using namespace 命名空间名;
注意:同一个命名空间可以分散在不同文件中,编译器会自动合并它们。标准库中的所有内容都位于 std 命名空间中。
二、输入输出
C++ 使用 <iostream> 头文件提供流式 I/O 功能。
- cin/cout: 分别代表控制台输入和输出。由于它们在
std命名空间中,使用时需加前缀或引入命名空间。 - 运算符:
<<是流插入运算符,>>是流提取运算符。它们支持链式操作,可一次处理多个内容。 - endl: 表示换行并刷新缓冲区。
示例:
#include<iostream>
using namespace std;
int main() {
int a, b;
cout << "请输入两个整数:";
cin >> a >> b;
cout << "两数之和为:" << a + b << endl;
}
C++ 能自动识别变量类型,无需像 C 那样手动指定占位符。
三、缺省参数
函数定义时可为参数指定默认值。调用时若不传参则使用默认值。
- 全缺省: 所有参数都有默认值。
- 半缺省: 部分参数有默认值。规定必须从右向左连续设置,且调用时必须先传完非缺省参数。
注意: 声明和定义分离时,缺省值只能出现在声明中。
四、函数重载
同一作用域内允许存在同名函数,前提是参数列表不同(个数、类型或顺序)。这提高了代码的可读性和复用性。


