sta*_*tan 3 c++ visual-studio-2008 visual-studio
不确定适当的标题,但它来自这个讨论:
在Visual Studio 2008上,当我运行以下代码时:
struct Stan
{
float man;
};
int main()
{
Stan *s1 = new Stan;
Stan *s2 = new Stan();
}
Run Code Online (Sandbox Code Playgroud)
检查本地,s1有一个带有随机值的未初始化的浮点数.s2的值初始化为0.
但是,如果我添加一个字符串数据成员,则两个实例中的float都是未初始化的.
struct Stan
{
std::string str;
float man;
};
Run Code Online (Sandbox Code Playgroud)
但是,两个实例中的字符串都已初始化.我尝试添加其他非POD类而不是字符串,但后一种情况仅在我添加字符串数据成员时才会出现.我认为添加一个字符串仍然是一个POD类?如果它不是POD类,那么无论括号如何都应该初始化值,对吧?当我添加一个字符串数据成员时,没有初始化为什么浮动(和其他原始数据类型)的想法?