为什么我需要输入using namespace std;为了能够使用cout和endl?这些叫做什么呢?是cout一个功能?
有coutC吗?我听说它是用C++实现的,因为它在很多方面都更好.
And*_*owl 10
cout是std命名空间中定义的全局对象,endl也是在std命名空间中定义的(流操纵器)函数.
如果不采取行动,以他们的名字导入到全局命名空间,你将无法引用它们与不合格的标识符cout和endl.您必须使用完全限定名称:
std::cout << "Hello, World!" << std::endl;
Run Code Online (Sandbox Code Playgroud)
基本上,using namespace std将名称std空间中存在的实体的所有名称注入全局名称空间的做法是什么:
using namespace std;
cout << "Hello, Wordl!" << endl;
Run Code Online (Sandbox Code Playgroud)
但是,请记住,using在全局命名空间中有这样的指令是一种BAD编程实践,这几乎肯定会导致恶名称冲突.
如果您确实需要使用它(例如,如果您的函数使用std命名空间中定义的许多函数,并且编写std::使代码更难以阅读),则应将其范围限制为单个函数的本地范围:
void my_function_using_a_lot_of_stuff_from_std()
{
using namespace std;
cout << "Hello, Wordl!" << endl;
// Other instructions using entities from the std namespace...
}
Run Code Online (Sandbox Code Playgroud)
更好的是,只要这是实用的,就是使用以下,使用声明的侵入性更小,它将有选择地仅导入您指定的名称:
using std::cout;
using std::endl;
cout << "Hello, Wordl!" << endl;
Run Code Online (Sandbox Code Playgroud)
没有!你并不需要using namespace std,而你不应该使用它。使用完全限定的名称std::cout和std::endl,或者在较小范围内使用
using std::cout;
using std::endl;
Run Code Online (Sandbox Code Playgroud)
至于其他问题,std::cout不是功能。它是绑定到标准输出的一种全局输出流对象。而且std::coutC中没有。
| 归档时间: |
|
| 查看次数: |
20869 次 |
| 最近记录: |