C++中使用"using std::"和每次调用std::的比较

38 浏览
0 Comments

C++中使用"using std::"和每次调用std::的比较

这个问题已经在这里有了答案:

可能是重复问题:

使用std命名空间

为什么在C++中使用“using namespace std;”被认为是一个不好的习惯?

假设我在C ++中使用#include并制作一个打印语句。我可以根据需要选择:

using namespace std;
[...]
cout << "Hello" << endl;

或者

using std::cout;
using std::endl;
[...]
cout << "Hello" << endl;

或者

std::cout << "Hello" << std::endl;

我相信,也许这是不正确的,第一个要避免使用,因为它可能会给您的程序添加许多不必要的膨胀。然而,我不知道第二种和第三种样式在性能方面是否有任何区别。我看到的大多数使用库的代码都倾向于使用第三种样式;然而,对于我而言,如果使用第二种方法没有任何牺牲,它似乎是最清晰和可读性最强的方法,尤其是如果您正在对涉及的函数或对象进行大量调用。

有谁能让我明白吗?

admin 更改状态以发布 2023年5月24日
0
0 Comments

我的经验法则是:永远不要在 .h 文件中放置 using namespace,但在 .cpp 文件中使用它是可以的。特别是当使用 using namespace std 的时候!

0
0 Comments

无论您选择哪种方式,都没有性能差异或“膨胀”。

但是,如果您这样做:

using namespace std;
using namespace boost;

您将在两个命名空间中出现名称冲突的很多麻烦。

我认为,在所有地方使用 std::cout 等的版本 3 更易于阅读,并且可以避免未来的名称冲突。

如果那不是您想要的,选项 2 是第二好的选择,因为它只引入了一些选择性的命名空间名称。请注意,尽管在您的示例中,使用声明中包含的字符比在代码的其余部分中不输入 std:: 省略的字符还要多。

0