c++ - 为什么我需要做 'using namespace std' 而不是 'using std::cout' ?

标签 c++ namespaces

每个人。
我了解到通常需要使用 std::cout 在我的代码中编写代码。而不是 using namespace std以避免命名空间冲突。在下面的脚本中,我只使用 cout,如果我编写 std::cout 而不是使用命名空间 std;这是行不通的。
谁能帮我理解为什么?一般什么时候std::cout不工作,我被迫使用 using namespace std ?



#include <iostream>
#include <string>
using std::cout; //if writing here "using namespace std;" instead, the code does not work

class MyClass{
public:
    string name;
    MyClass (string n)
    {
        name=n;
        cout<<"Hello "<<name;
    }
};


int main()
{
    MyClass MyObj("Mike");

return 0;
}

最佳答案

您需要添加 using std::string;连同 using std::cout;使其工作,因为您不仅使用命名空间 std 中的 cout,string也是namespace std的成员(member)您在代码中使用的。

关于c++ - 为什么我需要做 'using namespace std' 而不是 'using std::cout' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62497362/

相关文章:

php - 使用命名空间时如何不重复在 PHP 中的每个文件上使用 'Package\Library'

c++ - 友元和命名空间问题

python - Numpy 干扰命名空间

javascript - 充满事件处理程序的巨大文件!如何在 AJAX Web 应用程序中组织大型 jQuery 文件?

c++ - 使用 cmake 实用程序编译时出错

python - 考虑三个嵌套函数。最内层的函数可以访问最外层的命名空间吗?

c++ - 获取错误 C++ 即使拥有所有构造函数也没有匹配的调用函数

c++ - 算法在计算时很快 - 将计算数据写入输出缓冲区时速度很慢

c++ - 具有数组或 vector 参数的类模板

c++ - 类和线性回归