【发布时间】:2019-01-14 07:09:04
【问题描述】:
我是 C++ 的新手,我使用 std::cout 进行调试。
不过,我真的希望能够只使用 cout 而不是整个 std::cout 东西。我知道我可以导入 std 命名空间,但有人解释说这是一件坏事,因为这可能会发生名称冲突。
有没有办法做到这一点?
我试过了
std::ostream cout = std::cout;
但我明白了
function "std::basic_ostream<_CharT, _Traits>::basic_ostream(const std::basic_ostream<_CharT, _Traits> &) [with _CharT=char, _Traits=std::char_traits<char>]" (declared at line 391 of "/usr/include/c++/5/ostream") cannot be referenced -- it is a deleted function
请提出建议。
【问题讨论】:
-
首选
std::cout。 -
对不起,为什么?
-
因为它是C++中的最佳实践,引入整个
std命名空间是bad practice。 -
是的,但我实际上只是想介绍命名空间的一些元素(
cout、endl之类的东西),正如我在帖子中所说的那样。 -
@Ron 没有范围的
using声明被认为是一种不好的做法。在函数或块中包含using std;或using std::cout;通常并没有什么坏处。根据具体情况,有些人可能会争辩说,即使在.cc/.cpp文件中没有作用域的using也可以,因为它不会影响其他编译单元(尽管我个人更愿意避免这种情况)。跨度>