古法C++入门编程之第一集using namespace and 农场收菜

抛开头文件不谈
Using namespace std意义为  ‘展开命名空间std  其中std为标准库


命名空间因何而生?

一个庞大的项目中,往往会出现团队成员合作的情况

大家对各个变量的命名可能会起冲突

传闻中:为了解决冲突

     大家都会抄家伙上天台决一死斗

谁能活着回来就可以成为变量名的拥有者

C++开山老祖为了平息矛盾

开发了“命名空间域”

域有“全局域”、“局部域”(会影响生命周期和访问)
“命名空间域”、“类域”(只影响访问)

命名空间成功解决了命名冲突

农场收菜的故事:

铺垫:编译器的搜索原则为1.当前局部域2.全局域

3.如果指定了命名空间域,那么直接去命名空间搜索

我的农场叫做PP农场

隔壁是李老头的李老头农场

李老头出门赶集,希望我能帮忙给他收菜

就把他的农场门打开了

那么我就可以去收菜了

这个打开的动作即为using namespace '李老头’

例如李老头为标准库

那么using namespace std;

就可以进行对std内定义的关键字进行使用了

例如cout endl;

那么我们的古法C程序的hello world

可以变成我们古法C++程序的hello world版

至于一些cout endl的细节,下次再说

关于指定空间域:

如果我们不使用using namespace std

也可以按照编译器的搜索原则3 使用指定命名空间

更多推荐