*在C++中結(jié)構(gòu)體和類(lèi)有很多相似性,結(jié)構(gòu)體是一種用關(guān)鍵字struct聲明的自定義數(shù)據(jù)類(lèi)型。與類(lèi)相似,也可以包含構(gòu)造函數(shù),常數(shù),字段,方法,屬性,索引器,運(yùn)算符和嵌套類(lèi)型等,不過(guò),結(jié)構(gòu)是值類(lèi)型。
結(jié)構(gòu)體還是有很多的區(qū)別。
1.類(lèi)成員默認(rèn)訪問(wèn)權(quán)限為私有(private),結(jié)構(gòu)體成員默認(rèn)訪問(wèn)權(quán)限為公共(public);
2.從class繼承默認(rèn)是private繼承,而從struct繼承默認(rèn)是public繼承。
注意:C中的struct跟C++中struct可是不一樣的
*共用體 構(gòu)造數(shù)據(jù)類(lèi)型,也叫聯(lián)合體
用途:使幾個(gè)不同類(lèi)型的變量共占一段內(nèi)存(相互覆蓋)
結(jié)構(gòu)體是一種構(gòu)造數(shù)據(jù)類(lèi)型
用途:把不同類(lèi)型的數(shù)據(jù)組合成一個(gè)整體-------自定義數(shù)據(jù)類(lèi)型
---------------------------------------------------------------
結(jié)構(gòu)體變量所占內(nèi)存長(zhǎng)度是各成員占的內(nèi)存長(zhǎng)度的總和。
共同體變量所占內(nèi)存長(zhǎng)度是各最長(zhǎng)的成員占的內(nèi)存長(zhǎng)度。
共同體每次只能存放哪個(gè)的一種!!
共同體變量中起作用的成員是尊后一次存放的成員,
在存入新的成員后原有的成員失去了作用!
---------------------------------------------------------------
struct 與 union主要有以下區(qū)別:
1. struct和union都是由多個(gè)不同的數(shù)據(jù)類(lèi)型成員組成, 但在任何同一時(shí)刻, union中只存放了一個(gè)被選中的成員, 而struct的所有成員都存在。在struct中,各成員都占有自己的內(nèi)存空間,它們是同時(shí)存在的。一個(gè)struct變量的總長(zhǎng)度等于所有成員長(zhǎng)度之和。在Union中,所有成員不能同時(shí)占用它的內(nèi)存空間,它們不能同時(shí)存在。Union變量的長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度。
2. 對(duì)于union的不同成員賦值, 將會(huì)對(duì)其它成員重寫(xiě), 原來(lái)成員的值就不存在了, 而對(duì)于struct的不同成員賦值是互不影響的。