1樓:匿名使用者
在c++中 class 和 struct 本質上一樣 可以互用
class的成員預設是private的,struct的成員預設是public的
但一般習慣把成員變數隱藏的用class申明, 成員變數可以公開訪問並且比較簡單的用struct申明(個人理解是struct是從c來的,在c中就是那麼用的)
至於union,不論其內部有多少成員,在任意時刻,只有乙個可用,因為所有成員公用的乙個位址
例如union a
;中的三個變數 a,f,st的位址都是一樣的,也就是在一起的,
但sizeof(a) 的大小是其中變數最大的乙個的大小(不考慮位元組對其啥的)
這是因為三個變數在同一位址,所以其大小必須能夠滿足任意乙個變數使用,所以就必須使用最大的那個了
union在很多地方跟struct類似,也可以實現資料函式的封裝,但有一些特別的地方。1、乙個時點上只有乙個成員有值,(換句話說,所有成員使用的是同一塊記憶體)。2、不能做基類,也就沒有虛函式。
3、不能有靜態和引用成員。4、不能巢狀類(實際上是不能擁有具有建構函式、析構函式、賦值操作的成員,如果僅僅是資料封裝還是可以的)
2樓:匿名使用者
結構是一種將有關資料打包到一起的機制,類似於資料庫中的一條記錄,相對於鬆散的資料是一種進步。但是結構並不能完善的表達物件導向的思想,他只能描述物件的性質如姓名,年齡等而無法描述物件的行為如行走,說話。而類則可以包含這些特徵,也就是常說的類中可以包含成員變數(物件的性質)和成員函式(物件的行為)。
此外,類還具有繼承和多型的屬性,實現了物件的繁衍。
3樓:匿名使用者
在c++中 結構體也被稱為類,就是所有成員函式和成員變數都為共有的類 有了類並不需要結構體了,類是自定義的一種複雜的資料型別,你所說的結構是指結構體還是資料結構?
C 中,什麼叫訊息,什麼叫類,什麼叫物件
加斯加的小蘭花 訊息 message passing 指的就是c 從smalltalk中繼承而來 這種把成員函式 方法繫結到物件上的物件導向機制。呼叫一個成員函式 方法的時候要先指定物件,在指定物件身上的操作 如 obj.op common lisp object system中的generic m...
c中什麼是例項化,C 中,什麼叫類的例項化?如何實現,有什麼用?
比如我們人,可以定義一個類 class 人 屬性 public string 名字 public string 性別 public string 年齡 public string 職業 public string void 吃飯 bool 是否餓了 這個人的類裡面的方法,屬性,是我們所有人共有的特徵...
C 類和結構體有什麼區別,C 中共用體 結構體和類的區別
c c 結構體的區別 c中的結構體和c 中結構體的不同之處 在c中的結構體只能自定義資料型別,結構體中不允許有函式,而c 中的結構體可以加入成員函式。c 中的結構體和類的異同 一 相同之處 結構體中可以包含函式 也可以定義public private protected資料成員 定義了結構體之後,可...