gpt4 book ai didi

c++ -::std::string 和 std::string 之间有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 18:18:20 29 4
gpt4 key购买 nike

::std::stringstd::string 有什么区别前者是全局性的?但是 global 是为了什么?namespace std 不是 global 吗?谢谢你帮助我。

最佳答案

::std::string 表示全局命名空间中命名空间std 中的string。前导 :: 强制查找从全局命名空间开始。因此 ::std::string 始终表示 C++ 标准库中的 string 类型。

std::string表示命名空间std中的string,其中std会在当前查找范围。因此,如果有一个名为 std 的类、命名空间或枚举,名称查找可能会找到该 std

#include <string>
namespace foo {
namespace std {
class string { ... };
namespace bar {
std::string s; // means foo::std::string
::std::string s; // means string from standard library
}
}
}

只要您和您的合作者同意不命名任何std,就没有必要使用前导::。这只是很好的风格。

关于c++ -::std::string 和 std::string 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41499843/

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