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