命名空间
显然,类名是不能重名的。但类是面向对象语言的基本单位。数量会上万。
为了像变量的作用域一样将类分隔开,需要使用命名空间。
命名空间类似于文件夹,不同文件夹下的文件可以同名,
不同命名空间下的类也可以同名。并且命名空间的作用域不像语句块,不会延申到子命名空间。
命名空间使用关键字namespace+空间名定义。使用大括号包围放在他下面的类。
类似于文件夹,命名空间也可以分层。但是类名不能和同级的命名空间重名。
namespace 黄野平原
{
namespace 古堡
{
class 小幽灵 { }
}
class 野猪 { }
}
如果要一次编写多层级的命名空间,可以用点隔开表示分层。
namespace 黄野平原.古堡
{
class 蜡烛怪 { }
}
文件范围命名空间
通常情况下,一个源文件里面的类全部都会在同一个命名空间下。
此情况可以使用范围命名空间,将大括号改为分号。
一旦使用了文件范围命名空间,就无法使用普通命名空间和顶级语句了。
并且文件范围命名空间在一个文件内也只能存在一个。
namespace 黄野平原.古堡;
class 蜡烛怪 { }