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