C++ 基础核心概念详解
C++ 兼容 C 语言,我们可以在 C++ 环境下编写 C 代码。
C++之父:本贾尼・斯特劳斯特卢普。
一、命名空间
在 C++ 中,标识符查找规则决定了变量的可见性。编译器会从当前最内层的作用域开始查找,一旦找到就不会继续向外层查找。
1. 标识符冲突的本质
同一作用域下不能存在同名的标识符。例如:
#include <stdio.h>
#include <stdlib.h>
int main() {
int rand = 10;
printf("%d\n", rand); // 局部变量优先,代码正确执行
}
但如果 rand 定义为全局变量,就会与 stdlib.h 中的函数冲突导致编译报错。为了解决这个问题,引入了命名空间。
2. 命名空间的概念与语法
命名空间相当于一个自定义的域,用来存放标识符,避免命名冲突。访问时使用 命名空间名::标识符 的形式。
语法:
namespace 命名空间名 {
// 你自定义的标识符
}
解决冲突示例:
#include <stdio.h>
#include <stdlib.h>
namespace mycode {
int rand = 10;
}
int main() {
printf("%d\n", mycode::rand); // 正常打印出 10
}
3. 命名空间的嵌套与使用
当父域中标识符冲突时,可以使用嵌套命名空间。访问路径为 外层::内层::标识符。
嵌套示例:
code {
codeA {
a = ;
}
codeB {
a = ;
}
}
{
(, code::codeA::a);
(, code::codeB::a);
}


