从今天开始我准备把自己在看VC++中的问题写下来,不知道对别人有没有帮助,同时很希望别人能够在我的blog上回帖说明一些对我文字的见解(例如我的见解是否有问题,有没有误导别人的嫌疑,这也同时是个值得讨论的问题),用cdsn的博客进行学习是我早先决定下来,而本人比较慵懒,至今才得以到达这里,小弟希望能得到你们的帮助,从而尽快成为一个能有能力帮助别人的一份子。
好了,技术文字前的赘述到此结束,下面入正题。
namespace翻译为命名空间或是名称空间。。呵呵。。差不多。。
初学的人看见using namespace不免有点看不懂 我也是其中一个 书上往往有点繁琐
于是在网上搜了一下 其他的和书上写的别无二致 大体意思就是:
“很多初学C++的人,对于C++中的一些基本的但又不常用的概念感到模糊,命名空间(namespace)就是这样一个概念。
C++中采用的是单一的全局变量命名空间。在这单一的空间中,如果有两个变量或函数的名字完全相同,就会出现冲突。当然,你也可以使用不同的名字,但有时我们并不知道另一个变量也使用完全相同的名字;有时为了程序的方便,必需使用同一名字。比如你定义了一个变量string user_name, 有可能在你调用的某个库文件或另外的程序代码中也定义了相同名字的变量,这就会出现冲突。命名空间就是为解决C++中的变量、函数的命名冲突而服务的。解决的办法就是将你的strTemp变量定义在一个不同名字的命名空间中。就好像张家有电视机,李家也有同样型号的电视机,但我们能区分清楚,就是因为他们分属不同的家庭。”
如果还是摸不着头脑的话,在http://hi.baidu.com/jywb_pub/blog/item/cfed97b196fee85608230246.html里面该作者对此的最浅显的解释在最后一段体现了出来,他说:
“命名空间的问题,打个好的比方把,一个大的程序,大家都在写程序,都用不同地变量和函数,但是有些变量和函数是重复地,不同地程序员可能用了相同的函数,怎么办呢?加一个标签把!!
这个标签就是namespace,不同的独立文件用的不同,在引用是加上namespace,就可以区别是谁定义地函数了,你说的std就是c++中的函数库文件的标签,在程序地前面加上这个,就是说以后地函数不说明地话就是用的库中地函数!!以后的学习中还是会用的到的,这些只是肤浅的解释,随着你的学习,就会有更加好的理解。希望你能明白,没有误解你阿!! ”
解决了疑云的一段话,namespace就是起到了“标签”的作用,而初学者不需要问是不是一种确切的解释,至少生动形象的解释带领我们向前推进,今后的学习中可以进行修正。
愚以为,教学中的这种方式是一个好的方式,而我们的教材不愿意用简单的意思表达,犯了教条主义的毛病,我们的目的不是一步到位的准确理解,而是帮助我们架起通向准确理解的桥梁。
本文介绍了C++中的命名空间namespace,旨在解决变量和函数的命名冲突问题。通过实例和比喻,解释了namespace如何作为“标签”来区分不同源文件中的同名变量和函数,帮助初学者理解这一概念。
303

被折叠的 条评论
为什么被折叠?



