3 回答

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
聲明結(jié)構(gòu)的默認(rèn)(無(wú)參數(shù))構(gòu)造函數(shù)是錯(cuò)誤的??偸翘峁?a >默認(rèn)構(gòu)造函數(shù)以將結(jié)構(gòu)成員初始化為它們的默認(rèn)值。在結(jié)構(gòu)中初始化實(shí)例字段也是錯(cuò)誤的。
如果使用 new 運(yùn)算符創(chuàng)建結(jié)構(gòu)對(duì)象,則會(huì)創(chuàng)建該結(jié)構(gòu)對(duì)象,并調(diào)用適當(dāng)?shù)臉?gòu)造函數(shù)。與類不同,結(jié)構(gòu)的實(shí)例化可以不使用 new 運(yùn)算符。如果不使用 new,則在初始化所有字段之前,字段都保持未賦值狀態(tài)且對(duì)象不可用。

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊
結(jié)構(gòu)無(wú)需進(jìn)行new,就可以直接使用
比如:
MyStruct struct;
struct.Method();
對(duì)于類的話,這是錯(cuò)誤的
原因如下:
結(jié)構(gòu)為值類型,而new用于為引用類型(類、對(duì)象、接口等)分配引用(內(nèi)存地址),值類型存儲(chǔ)于堆中,無(wú)需使用new。
比如:
int x;和MyStruct struct;
是一樣的道理
這的x、struct都是值類型的
最后結(jié)構(gòu)可以用new 也可以不用new
- 3 回答
- 0 關(guān)注
- 1624 瀏覽
添加回答
舉報(bào)