一 、 双 冒 号 运 算 符 n a m e s p a c e \color{red}{ 一、双冒号运算符 namespace} 一、双冒号运算符namespace
全局作用域直接加:
二 、 命 名 空 间 n a m e s p a c e \color{red}{ 二、命名空间 namespace} 二、命名空间namespace
namespace命名空间主要用于解决命名冲突的问题
namespce A
{
int m_b = 100;
}
1、命名空间下可以放函数、变量、结构体、类
2、命名空间必须定义再全局变量下
namespace A
{
void func()
int m_a=20;
struct person
{
};
class Animal{};
namespace B
{
int m_a = 10;
}
}
3、命名空间可以嵌套
namespace A
{
namespace B
{
int m_a = 10;
}
}
4、命名空间是开放的,可以随时的往原先的命名空间添加内容,此A命名空间会和上面的命名空间A进行合并
namespace A
{
int m_a=0; //相当于static int m_c,只能在当前文件夹使用
}
namespace A
{
int m_a = 10;
}
5、无名、匿名命名空间
namespace
{
int m_c=0; //相当于static int m_c,只能在当前文件夹使用
}
6、命名空间可以起别名
namespace veryLongName
{
int m_c=0; //相当于static int m_c,只能在当前文件夹使用
}
void test()
{
namespace short = veryLongName;
}
三 、 u s i n g \color{red}{ 三、 using} 三、using
首先看一个问题
输出为20,而加一个声明后出现了错误!
编译指令