在c ++中初始化空字符串的专业方法

aur*_*ura 0 string c++14

嗨,我想学习一种在c ++中初始化emtpy字符串的专业方法.

我可以

std::string a_string;  // way_1
Run Code Online (Sandbox Code Playgroud)

要么

std::string a_string = "";  // way_2
Run Code Online (Sandbox Code Playgroud)

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

你知道C++专业程序员如何初始化一个空字符串?

谢谢

Seb*_*edl 6

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

这是错误的推理.默认值std::string由C++标准定义,并且与语言的其他部分一样稳定.如果你担心它会发生变化,那么你也应该担心std::string完全消失,或者""改变的意思,或者空字符串改变的初始化意义.

如果你想对"专业"的,那时的我,如果我看到了使用显式形式的程序员,会怀疑这是否程序员不知道这样一个基本类型的默认初始化的std::string呢,所以什么别的这个程序员可能不知道.