我偶然發現了這個奇怪的結構實作(來自一個大專案),我想知道這個和普通結構之間的區別,以及為什么它甚至以這種方式實作:
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;
}
uj5u.com熱心網友回復:
宣告一個具有兩個成員的結構,顯式覆寫默認 c'tor 并初始化成員 0 和 0.0f:
struct Sabc{
Sabc()
{
A = 0;
B = 0.0f;
}
int A;
float B;
}
宣告一個沒有成員的結構,并顯式覆寫默認 c'tor,在其中宣告兩個區域變數,用值初始化,并在 c'tor 回傳時,變數超出范圍并被洗掉:
struct Sabc{
Sabc()
{
int A = 0;
float B = 0.0f;
}
}
宣告一個具有兩個成員的結構體,并且隱式默認初始化為 0 和 0.0f,僅在 C 中編譯:
struct Sabc{
int A = 0;
float B = 0.0f;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/339978.html
上一篇:C 從檔案中讀取特定范圍的行
