【发布时间】:2013-01-03 10:09:56
【问题描述】:
我对 C++ 中的 namespace 和 using 有点疑惑,基本上我想知道它们的区别并弄清楚如何以最佳方式使用它。
在我看来,(至少)有三种方法可以解析类名,但我不知道如何选择:
using namespace <namespace>using <namespace>::<what_to_use><namespace>::<what_to_use> <use_it>
我想知道这些优势,尤其是在以一种或另一种方式涉及性能的情况下,如果它只是语法和偏好问题,或者是否还有其他我没有考虑过的事情。
【问题讨论】:
-
与运行时性能无关。
-
我在大学时被告知,除了所有的命名空间都在范围内之外,使用
using namespace std;也是一个安全隐患。 -
1.由于您描述的原因而气馁 2. 帮助您在 ADL 的帮助下使用其他人在他们自己的名称空间中提供的功能(请参阅
std::swap,尽管让答案更好地向您解释这一点) 3. 我最喜欢但那是一个品味问题,如果你不像我那样喜欢到处看到std::,可能会很麻烦。但是它们都没有任何性能差异,它们只是关于名称解析并且不会“编译到实际代码中”。
标签: c++ namespaces using