相关疑难解决方法(0)

为什么"使用命名空间std"被认为是不好的做法?

我已经告诉别人,编写using namespace std;代码是错误的,我应该用std::coutstd::cin直接代替.

为什么被using namespace std;认为是不好的做法?是低效还是冒着声明模糊变量(与名称std空间中的函数具有相同名称的变量)的风险?它会影响性能吗?

c++ namespaces using-directives std c++-faq

2486
推荐指数
36
解决办法
78万
查看次数

using namespace std; 在头文件中

所以,我在规范文件中有以下内容

#include <string>
#include <fstream>
using namespace std:

class MyStuff
{
    private:

    string name;
    fstream file;
    // other stuff

    public:
    void setName(string);
}
Run Code Online (Sandbox Code Playgroud)

我也在实现文件中

#include "MyStuff.h"
using namespace std;

void MyStuff::setName(string name);
{
     name = name
}
Run Code Online (Sandbox Code Playgroud)

在程序文件中我有......

#include <iostream>
#include <string>
using namespace std;

void main()
{
     string name;
     MyStuff Stuff;

     cout << "Enter Your Name: ";
     getline(cin, name);

     Stuff.setName(name);
}
Run Code Online (Sandbox Code Playgroud)

我正在收集应用"using namespace std;" 在头文件中是禁止的,完全符合条件是"更好"的做法; 如std::cout << stuff << endl;

我的理解是,为了使用字符串,它必须具有std命名空间.真的吗?

如果是这样,在头文件中,更加"纯净/干净"来做...

#include <string>

class MyStuff
{
     std::string …
Run Code Online (Sandbox Code Playgroud)

c++ namespaces class header-files

15
推荐指数
2
解决办法
3万
查看次数

标签 统计

c++ ×2

namespaces ×2

c++-faq ×1

class ×1

header-files ×1

std ×1

using-directives ×1