gpt4 book ai didi

c++ - 在每次调用中使用 namespace::function 比在 namespace::前面加前缀更好?

转载 作者:太空狗 更新时间:2023-10-29 20:53:44 25 4
gpt4 key购买 nike

同意 using namespace XXX 不是一个好习惯。然而,在每次调用中添加前缀 namespaces:: 不仅乏味,有时还令人恼火。例如,查看下面使用标准命名空间 std

的代码
#include <iostream>

int main()
{
std::cout << "Hello World" << std::endl;
return 0;
}

但是,我可以通过 using keyword as

导入函数本身来摆脱重复的 std::
#include <iostream>
using std::cout;
using std::endl;
int main()
{
cout << "Hello World" << endl;
return 0;
}

为什么我不应该这样做而不是在所有语句中加上 std::前缀,有什么具体原因吗?如果没有具体原因,为什么不提倡这种方法来反对前缀 std::

我从 C++ 规范中了解到,使用 std::func 也会导入重载定义。

最佳答案

使用命名空间限定的主要原因是它避免了名称冲突,例如本地名称 distancestd::distance 的冲突。

避免限定的主要原因是代码更短,并且对于一些程序员(包括我)来说看起来更清晰,因为它只是读作英文。

名称冲突的问题随着代码的大小而增加,因此这是一个标准:代码越短,为避免名称冲突而增加开销的意义就越小。反之亦然,代码库越大,构建时间越长,就越有理由避免名称冲突。

一个主要规则:

永远不要在头文件的全局命名空间中添加一揽子using namespace...

但除此之外,这是一个所谓的工程决策:根据您对优势和成本、丑陋、可读性和清晰度等的直觉。

关于c++ - 在每次调用中使用 namespace::function 比在 namespace::前面加前缀更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41843964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com