jke*_*eys 0 c++ namespaces global-namespace
注意:我自己几乎都是初学者.这个问题集中在C++的使用上,因为这是我遇到的唯一语言.
在using namespace std;
为C++提供的代码示例中使用Stack Overflow似乎已达成共识.我最初是以这种方式学习的,并且从未被教过为什么以后这是一个问题.
我只是想知道为什么人们在他们的示例代码中使用前缀std ::有问题.声明全局命名空间似乎是反复无常的,特别是因为许多提问者将示例中的代码复制+粘贴到他们的IDE中.命名空间是一个高级编程概念,但我认为最好为std ::添加前缀,然后在初学者询问时解释它.
为什么这种用法教会初学者是否可以接受?
我认为答案是"它并不重要".这是一个微妙的,以后很容易拿起和纠正.
我所知道的每个初学者的编程文本都进行了大量的简化,并使用大量的手工操作来隐藏很多正在发生的事情("这条线是神奇的.只需键入它,我们将讨论它后来做什么") .
初学者有足够的担心,而不必完全理解他们的代码中的所有内容,以及如何/为什么它是坏的,所以这些简化往往是好事.
虽然在这种情况下我有点同意你的观点.
添加std::
前缀不是什么大问题,它会使命名空间显得神秘.using namespace std
实际上很难解释和理解.
另一方面,它占用空间并为代码增加噪声,应尽可能简洁明了.