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