相关疑难解决方法(0)

是否保证默认构造函数自动将内置类型初始化为0?

在你开始将其标记为重复之前,我已经读过这个 .但它没有回答我的问题.链接的问题谈到了C++ 98和C++ 03,但我的问题是关于C++ 11引入的默认构造函数.

考虑以下程序(请参阅此处的实时演示):

#include <iostream>
struct Test
{
    int s;
    float m;
    Test(int a,float b) : s(a),m(b)
    { }
    Test()=default;
}t;
int main()
{
    std::cout<<t.s<<'\n';
    std::cout<<t.m<<'\n';
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,编译器提供的默认构造函数总是初始化内置类型,在C++ 11和C++ 14中默认为0,当它们是class&struct成员时.这种行为是否由C++ 11标准保证?

c++ initialization default-constructor language-lawyer c++11

11
推荐指数
3
解决办法
1058
查看次数