c++ namespace名字空间声明方法 -------- (为什么要引入名字空间)

关于,有了头文件为什么还要引入名字空间? 主要是解决实体如类、变量、函数等的命名冲突问题。在简单的程序设计中,只要人们小心注意,可以争取不发生错误。但是,一个大型的应用软件,往往不是由一个人独立完成的,而是由若干人合作完成的,不同的人分别完成不同的部分,最后组合成一个完整的程序。假如不同的人分别定义了类,放在不同的头文件中,在主文件(包含主函数的文件)需要用这些类时,就用#include命令行将这些头文件包含进来。由于各头文件是由不同的人设计的,有可能在不同的头文件中用了相同的名字来命名所定义的类或函数。 这时程序编译就会出错。

因为在预编译后,头文件中的内容取代了对应的#include命令行,这样就在同一个程序文件中出现了两个同名的类或者变量或者函数,显然是重复定义,这就是名字冲突,即在同一个作用域中有两个或多个同名的实体。

在实际写程序时,如何使多个类在同一个名字空间中,其实只要在头文件中声明类或者变量时加上namespace 空间名 { 放类的完整声明},在实现文件中仍然把类的实现放在名字空间中就可以,如namespace 空间名 { 放类的完整实现},每个类都类似处理,只要在每个类的声明和实现中都包含同一个命名空间,那么他们就都在同一个命名空间中了

例子程序:

这个程序定义了两个类,每个类都有头文件和实现文件,都分别放在了同一个namespace里了

 

 

所以以此类推,只要我把新的类的定义都放在该名字空间中,那么他们就都在同一个名字空间了!!!

原文地址:https://www.cnblogs.com/ruigelwang/p/13267644.html