使用std::,std::cout的澄清
Clarification with using std::, std::cout
有人可以在C++中澄清文件顶部的含义吗?
using std::cout;
谢谢
这意味着从那时起在代码中,当我们键入cout
时,我们的意思是std::cout
它将命名空间std
中定义的cout
注入到当前命名空间中。我们在using namespace std
使用它,因为这更受控制;并非每个std
名称都会注入此语句。
这是一个命名空间声明。允许您键入 cout
而不是 std::cout
并且通常是首选而不是using namespace std;
<</p>
using
声明将名称cout
引入全局命名空间作为std::cout
的同义词。
它与"命名空间"概念有关。为了避免名称冲突(变量、类等,它们在不同的文件中具有相同的名称),您可以将代码放入命名空间中,如下所示:
namespace exampleNS
{
class A { ... }
void aFunction (...){ ... }
}
当你在命名空间exampleNS
内时,你可以只用名称来引用类A
,但从外面你需要写exampleNS::A
。
如果要节省在经常使用的名称之前添加命名空间的详细程度(并且确定不会与当前命名空间中的任何内容发生冲突),则可以编写该using
语句。
大多数标准库实用程序都在namespace std
中,例如变量cout
和cin
。在您的情况下,您的代码不在命名空间std
内:您可以选择每次打印内容时编写std::cout
,或者在开头编写using std::cout
,然后将其用作代码中的cout
。
using A::B
其中A
是命名空间,这意味着B
的可访问性不需要其派生的前缀。请注意,这只是相对于放置它的范围。如果放置在较低级别的范围内,则其功能在外部作用域中不会产生任何影响。
相关文章:
- 错误:在 C++ 'std'使用未声明的标识符
- std::使用内部对象移动 - 与调用不匹配
- std::使用类成员函数创建线程 - 最佳实践
- std::使用迭代器映射查找距离,程序不会终止
- std::使用 -std=gnu++11 开关编译时相等错误
- 混合模板类型的模板参数包(std::使用可选参数重新创建函数)
- std::使用本地类型Compare进行排序
- std::使用了move,调用了move构造函数,但对象仍然有效
- c++std::使用函数返回值对std::向量进行排序
- std::使用compare参数映射检查第一个和第二个值
- std::使用自定义类排序错误
- std::使用大括号的数组复制构造
- std::使用个人类排序返回分段错误
- C++std::使用自定义函数进行排序
- std::使用函数作为比较器进行排序,不起作用
- std::使用类参数的线程初始化会导致类对象被多次复制
- std::使用写入时复制分支转发
- std::使用自定义类型设置差异
- std::使用来自本地对象的消息时发生异常
- C++std::使用用户定义的数据类型进行映射