C++ 基础语法详解
一、命名空间 (namespace)
为什么需要命名空间
在 C/C++ 中,变量、函数和类的名称都存在于全局作用域。当项目规模变大时,很容易出现命名冲突。比如 rand 这个函数名,如果不小心定义了一个同名的局部变量,编译器就会报错。
C 语言中的冲突示例:
#include <stdio.h>
#include <stdlib.h>
int rand = 6;
int main() {
printf("%d", rand);
}
C++ 引入 namespace 就是为了隔离标识符,避免污染。
C++ 优化方案:
#include <stdio.h>
namespace m {
int rand = 6;
}
int main() {
printf("%d", m::rand);
}
定义与本质
使用 namespace 关键字定义一个域,该域与全局域独立。不同的域可以定义同名变量。C++ 的域包括函数局部域、全局域、命名空间域和类域。
命名空间只能定义在全局,支持嵌套:
namespace m {
namespace n {
int a = 0;
int b = 9;
}
int c = 6;
}
注意:在多文件工程中,不同文件中定义的同名 namespace 会被视为同一个命名空间,不会冲突。标准库都在
std命名空间中。
使用方式
访问命名空间成员有三种方式:
- 指定访问:推荐用于项目,明确且安全。
std::cout << ;


