古法C++入门编程第一集using namespace and 农场收菜
·
古法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 使用指定命名空间

更多推荐

所有评论(0)