gpt4 book ai didi

c++ - 命名空间信息会降低 C++ 的可读性

转载 作者:行者123 更新时间:2023-12-03 12:01:55 25 4
gpt4 key购买 nike

我是新来的 C++并且在 C 有背景.我很难采用的一件事是经常使用范围运算符,例如std::好吧,我会通过放置 using namespace std 来避免使用它在我的源代码的开头,但很多人不使用这种方法,因为他们认为这可能会在 future 咬他们。

另外,visual-studio还显示沿范围运算符的错误/警告消息,例如

cannot convert from 'std::vector<int,std::allocator<_Ty>> *' to 'std::shared_ptr<std::vector<int,std::allocator<_Ty>>>'

虽然上面的消息很冗长,但读起来很痛苦(?)。我认为如果采用这种形式,阅读起来会很简单
cannot convert from 'vector<int,allocator<_Ty>> *' to 'shared_ptr<vector<int,allocator<_Ty>>>'

1) 为什么大家都在用 std:: ,即使对于 cout , cin , endl ?为什么会有人将标签用于其他目的?

2) 他们在 Visual Studio 中的解决方法是不向我显示带有前缀 std:: 的错误/消息/语法亮点?

最佳答案

虽然,正如评论中所指出的,代码如 using namespace std;considered bad practice ,您可以避免在代码中重复使用命名空间前缀,例如 std::cout , 通过在 using 中指定单个作用域元素声明。

像这样的东西:

using std::cout;  //
using std::cin; // You can, from then on, just use 'cout', 'cin' and 'endl'
using std::endl; //

对于非常常见的元素,比如上面代码中列出的元素,可以把相关的 using头文件中的行 - 通常是用于构建预编译头的“全局”头。

关于c++ - 命名空间信息会降低 C++ 的可读性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59750642/

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