1.內(nèi)存管理不一樣劲装,類引用類型,分配在堆上昌简。結(jié)構(gòu)體是值類型占业,分配在棧上。
(解釋:引用類型是講一個(gè)對(duì)象賦值給另一個(gè)對(duì)象時(shí)系統(tǒng)不會(huì)進(jìn)行此對(duì)象的拷貝纯赎,而是將指向這個(gè)對(duì)象的指針賦值給另一個(gè)對(duì)象谦疾,當(dāng)修改其中一個(gè)對(duì)象的值時(shí),另一個(gè)對(duì)象的值也會(huì)改變犬金。值類型是將一個(gè)對(duì)象賦值給另一個(gè)對(duì)象時(shí)念恍,會(huì)對(duì)此對(duì)象進(jìn)行拷貝六剥,復(fù)制出一份副本給另一個(gè)對(duì)象,在修改其中一個(gè)對(duì)象的值時(shí)峰伙,不影響另外一個(gè)對(duì)象疗疟。)
2.類,有析構(gòu)函數(shù)瞳氓。結(jié)構(gòu)體不能有析構(gòu)函數(shù)策彤。
(解釋:析構(gòu)函數(shù)(destructor) 與構(gòu)造函數(shù)相反,當(dāng)對(duì)象結(jié)束其生命周期匣摘,如對(duì)象所在的函數(shù)已調(diào)用完畢時(shí)店诗,系統(tǒng)自動(dòng)執(zhí)行析構(gòu)函數(shù)。析構(gòu)函數(shù)往往用來做“清理善后” 的工作(例如在建立對(duì)象時(shí)用new開辟了一片內(nèi)存空間音榜,delete會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù)后釋放內(nèi)存))
3.結(jié)構(gòu)體構(gòu)造函數(shù)會(huì)自動(dòng)生成帶參數(shù)的構(gòu)造器庞瘸。類不會(huì)對(duì)有初始化賦值生成帶參數(shù)的構(gòu)造器。
4.類有繼承特性赠叼,結(jié)構(gòu)體沒有繼承特性恕洲。結(jié)構(gòu)體無繼承特性,則無法對(duì)成員屬性梅割、成員方法霜第、類屬性、類方法進(jìn)行重載户辞。結(jié)構(gòu)體的函數(shù)操作符需要static泌类,不能使用class。
5.類中的每一個(gè)成員變量都必須被初始化底燎,否則編譯器會(huì)報(bào)錯(cuò)刃榨。而結(jié)構(gòu)體不需要,編譯器會(huì)自動(dòng)幫我們生成init函數(shù)双仍,給變量賦一個(gè)默認(rèn)值枢希。
相同點(diǎn):
1.操作符函數(shù)
2.范型
3.協(xié)議采納
4.觀察器
新特性:
結(jié)構(gòu)體中可以聲明方法,使結(jié)構(gòu)式更加靈活朱沃。