C++ 核心基础概念梳理
C++ 兼容 C,这意味着你可以在 C++ 环境下编写 C 代码。
C++之父:本贾尼・斯特劳斯特卢普。
一、命名空间
在 C++ 中,标识符(变量、函数、类、常量、命名空间)的查找遵循特定的规则。理解这些规则有助于避免命名冲突。
1. 标识符查找规则
编译器查找标识符时,会从当前最内层的作用域开始查找;一旦找到,就不会再去外层作用域查找。
2. 命名冲突的本质
同一作用域下不能存在同名的标识符。
来看一个例子:
#include <stdio.h>
#include <stdlib.h>
int main() {
int rand = 10;
printf("%d\n", rand); // 代码可以正确执行
}
这里 rand 是局部变量,遮蔽了 stdlib.h 中的全局函数 rand。但如果写成全局变量呢?
#include <stdio.h>
#include <stdlib.h>
int rand = 10; // 全局变量
int main() {
printf("%d\n", rand); // 会编译报错
}
当 rand 是全局变量时,它与 stdlib.h 中的函数名冲突,导致编译错误。这就是为什么我们需要命名空间来隔离不同的标识符。
3. 命名空间的使用
① 概念与语法
命名空间就像是一个自定义的'域',用来存放标识符,解决同一个域下的命名冲突问题。访问时使用 命名空间名::标识符。
namespace mycode {
int rand = 10;
}
{
(, mycode::rand);
}


