String 在c++; 我想学习一种在C++中初始化EMtPy字符串的专业方法。

String 在c++; 我想学习一种在C++中初始化EMtPy字符串的专业方法。,string,c++14,String,C++14,我可以 std::string a_string; // way_1 或 但是我认为way_1完全取决于std包中定义的默认值。对我来说,它不是一个显式声明,如果std::string的代码在将来更改,它可能需要更改way_2对我来说不是直接的,而是使用了相当于空字符串的“”。对我来说,内置的空字符串是专业的,比如初始化指针的nullptr 你知道C++专业程序员如何初始化空字符串吗?< /P> 谢谢 但是我认为way_1完全取决于std包中定义的默认值。对我来说,它不是一个明确的声明,如果

我可以

std::string a_string;  // way_1

但是我认为
way_1
完全取决于
std
包中定义的默认值。对我来说,它不是一个显式声明,如果std::string的代码在将来更改,它可能需要更改
way_2
对我来说不是直接的,而是使用了相当于空字符串的
“”
。对我来说,内置的空字符串是专业的,比如初始化指针的
nullptr

<>你知道C++专业程序员如何初始化空字符串吗?< /P> 谢谢

但是我认为
way_1
完全取决于
std
包中定义的默认值。对我来说,它不是一个明确的声明,如果
std::string
的代码在将来更改,它可能需要更改

这是错误的推理。“代码> STD::String 的默认值由C++标准定义,并且与语言的其他部分一样稳定。如果您担心它的变化,那么您也应该担心
std::string
完全消失,或者
变化的含义,或者空字符串初始化的含义变化


如果你选择“professional”,那么如果我看到一个程序员使用显式表单,我会想,这个程序员是否不知道像
std::string
这样的基本类型的默认初始化是做什么的,因此,这个程序员可能还不知道什么。

看看这篇关于空字符串的有趣文章:没有“std包”这样的东西。string类是语言标准中定义的标准库的一部分。字符串的默认值在语言标准中定义。如果您不信任该标准,请不要使用该语言
std::string a_string={}
自动a_string=std::string{}
std::string a_string = "";  // way_2