我需要在C ++中声明一个新的ModelName::today()->get();
ModelName::yesterday()->get();
变量,然后从标准输入中读取它。我必须先将其初始化还是不必要的步骤?换句话说,哪个代码更好:1)或2)? (或者它们是一样的吗?)
1)
string
2)
string s = "";
cin >> s;
答案 0 :(得分:4)
对std::string
而言,它并不重要。由于std::string
的默认构造函数使用空字符串初始化它:
默认构造函数。构造空字符串(零大小和未指定的容量)。 (Source)
两条线在行为方面基本上做同样的事情。你选择1还是2并不重要,但我会说如果默认构造函数做同样的事情,那么赋值就过时了。
如果你有某种整数类型,没有默认构造函数的东西,那么大多数人仍然保持未初始化,因为之后正在输入。但是,我发现用默认值初始化这些变量会更好,因为这会处理由于某种原因输入失败的情况(无效类型,错流状态等)。