关于"使用"关键字的问题

Mac*_*iek 4 c++

我很清楚使用名称空间然而,我偶尔会遇到使用特定类的使用.例如 :

#include <string>
using namespace std;
(...)
Run Code Online (Sandbox Code Playgroud)

但是 - 我时不时地看到:

using std::string;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我该如何解释"使用"?

干杯

Gra*_*erg 23

使用std :: string只需将std :: string导入当前作用域(也就是说,你可以使用'string'而不是'std :: string')而不将所有内容从:: std导入当前作用域.


编辑:评论后澄清.

  • 一般原则是在污染库用户的命名空间时,永远不要在库头中使用"using ...".请记住:无法撤消"使用". (4认同)

sep*_*p2k 12

using namespace foo允许您无需限定地访问命名空间foo中的所有名称.using foo::bar允许您bar无限制地使用,但不允许在foo中使用任何其他名称.