C++ 核心基础概念解析
C++ 兼容 C,这意味着我们可以在 C++ 环境中编写 C 代码。本杰尼·斯特劳斯特卢普是 C++ 之父。
一、命名空间
在 C++ 中,标识符(变量、函数、类、常量、命名空间)的查找遵循特定规则。编译器会从当前最内层的作用域开始查找,一旦找到就不会继续向外层查找。这导致了一个常见问题:同一作用域下不能存在同名的标识符。
1. 命名冲突的本质
看下面这个例子:
#include<stdio.h>
#include<stdlib.h>
int main() {
int rand = 10;
printf("%d\n", rand); // 局部变量优先,代码正确执行
}
如果 rand 定义在全局呢?
#include<stdio.h>
#include<stdlib.h>
int rand = 10; // 与 stdlib.h 中的 rand 函数冲突
int main() {
printf("%d\n", rand); // 编译报错
}
这就是命名冲突。为了解决这个问题,我们引入了命名空间。
2. 命名空间的概念与语法
命名空间就像一个自定义的容器,用来存放标识符,避免不同模块间的名字打架。访问时通常使用 命名空间名::标识符 的形式。
namespace mycode {
int rand = 10;
}
int main() {
printf("%d\n", mycode::rand);
}

