C++中结构的初始化

Initialization of structs in C++

我偶然发现了这个奇怪的结构实现(来自一个大项目),我想知道它与普通结构的区别以及为什么它甚至以这种方式实现:

struct Sabc{
   Sabc()
   {
       A = 0;
       B = 0.0f;
   }
   int A;
   float B;
}

为什么不只是 :

struct Sabc{
   Sabc()
   {
      int A = 0;
      float B = 0.0f;
   }
}

或者为什么不这样:

struct Sabc{
   int A = 0;
   float B = 0.0f;
}

声明一个具有两个成员的结构,显式覆盖默认 c'tor 并初始化成员 0 和 0.0f:

struct Sabc{
   Sabc()
   {
       A = 0;
       B = 0.0f;
   }
   int A;
   float B;
}

声明一个没有成员的结构,并显式覆盖默认的 c'tor,在其中声明两个局部变量,用值初始化,并且在 c'tor return 上,变量超出范围并且是已删除:

struct Sabc{
   Sabc()
   {
      int A = 0;
      float B = 0.0f;
   }
}

声明一个具有两个成员的结构,并隐式默认初始化为 0 和 0.0f,仅在 C++ 中编译:

struct Sabc{
   int A = 0;
   float B = 0.0f;
}