我想知道一点关于命名空间和在C中使用基本上我想知道差异并找出如何以最佳方式使用它.
我看到它有(至少)三种方法来解决类名,我不知道如何选择它们:
> using namespace< namespace>
> using< namespace> ::< what_to_use>
>< namespace> ::< what_to_use> < use_it>
我想知道这些优点,特别是如果有一种或另一种方式涉及性能,如果它只是语法和偏好的问题,或者还有其他我没有考虑过的事情.
解决方法
首先是
using namespace directive,它带来当前命名空间中指定命名空间的所有符号名称,无论您是否需要/使用它们.当然不受欢迎.
第二个是using namespace declaration.它只在当前命名空间中带来指定的符号名称.优点是您不必每次都输入完全限定的名称.
第三个是符号的完全限定名称.缺点是您必须在使用符号的任何地方键入完全限定名称.
显然,第二&第三是更合适的.它们中的任何一个都没有性能差异.唯一的区别是您键入的字符数量.只需根据您的编码标准指定选择.
编辑:
正如@Jerry指出的那样,将声明与ADL(基于参数的查找)结合使用会导致不良影响.
你可以在我的一个答案中找到详细的解释:
Detailed explanation on how Koenig lookup works with namespaces and why its a good thing?
根据该节,为什么批评Koenig算法?