C++的命名冲突、namespace、using关键字(重要)

C++的命名冲突、namespace、using关键字(重要)

目录

命名冲突

域作用限定符::

namespace关键字

using关键字

iostream头文件和std命名空间

命名冲突

#include

int rand = 10;

int main()

{

printf("hello world\n");

printf("%d\n", rand);

return 0;

}

#include

#include //新增包含头文件

int rand = 10;

int main()

{

printf("hello world\n");

printf("%d\n", rand);

return 0;

}

发现不包含stdlib头文件之前的代码可以正常执行,包含了stdlib头文件的代码会报错:

这是因为rand是stdlib头文件中一个被定义的函数,而int rand是对rand函数的重定义,因此可以得到这样的结论:全局变量可能会出现命名冲突的问题

基本概念:包括类域、全局域、局部域、命名空间域、访问两个域中的同名变量时,采用就近原则

全局作用域:变量或函数在整个程序中可见

局部作用域:变量或函数在特定代码块内可见(如函数体、循环等)

类作用域:变量或函数在类的内部可见

命名空间作用域:变量或函数在特定命名空间内可见,使用namespace定义的作用域

一般情况下程序的查找顺序:局部作用域->类作用域->命名空间域->全局域

相关推荐

如何在Linux中轻松隐藏文件和文件夹
beat365中国在线体育

如何在Linux中轻松隐藏文件和文件夹

📅 07-20 👀 3257
王者荣耀克隆模式延迟开放 官方公告及玩家期待
beat365中国在线体育

王者荣耀克隆模式延迟开放 官方公告及玩家期待

📅 10-16 👀 9945
手机上的HD是什么?怎么关闭?一文给你讲清楚!
beat365中国在线体育

手机上的HD是什么?怎么关闭?一文给你讲清楚!

📅 07-07 👀 7133
新买的电脑卡顿正常吗 反应慢原因及解决指南
百特365平台可靠吗

新买的电脑卡顿正常吗 反应慢原因及解决指南

📅 08-12 👀 1344