全局作用域直接加:
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;
}
首先看一个问题
输出为20,而加一个声明后出现了错误!
编译指令