C 中struct與class的區別

2021-09-27 10:16:21 字數 746 閱讀 6296

結構體是一種特殊形態的類,它和類一樣,可以有自己的資料成員和函式成員,可以有自己的建構函式和析構函式,可以控制訪問許可權,可以繼承,支援包含多型等,二者的定義語法也幾乎一樣。

結構體和類的唯一區別在於,結構體和類具有不同的預設訪問控制屬性:

在類中,對於未指定訪問控制屬性的成員,其訪問控制屬性為私有型別(private);

在結構體中,對於未指定任何訪問控制屬性的成員,其訪問控制屬性為公有型別(public)。因此,在結構體的定義中,如果把公有成員放在最前面,則最前面的「pubic" 可以省去,結構體可以按照如下的語法形式定義:

struct 結構體名稱

;

c語言只有結構體,而沒有類,c語言的結構體中只允許定義資料成員,不允許定義函式成員,而且c語言沒有訪問控制屬性的概念,結構體的全部成員是公有的。

c語言的結構體是為面向過程的程式服務的,並不能滿足物件導向程式設計的要求,因此c++為c語言的結構體引入了成員函式、訪問許可權控制、繼承、包含多型等物件導向的特性。但由於用stucture (stuct 關鍵字是structure的縮寫)一詞來表示這種具有物件導向特性的抽象資料型別不再貼切,另外c語言中struct所留下的根深蒂固的影響,c++在struct之外引入了另外的關鍵字class, 並且把它作為定義抽象資料型別的首選關鍵字。但為了保持和c程式的相容,c++保留了struct關鍵字,並規定結構體的預設訪問控制許可權為公有型別。

C 中class與struct的區別

類與結構的例項比較 類與結構的差別 如何選擇結構還是類 一 類與結構的示例比較 結構示例 類示例 呼叫過程 從上面的例子中我們可以看到,類的宣告和結構的宣告非常類似,只是限定符後面是 struct 還是 class 的區別,而且使用時,定義新的結構和定義新的類的方法也非常類似。那麼類和結構的具體區別...

C 中class與struct的區別

一 類與結構的示例比較 結構示例 類示例 呼叫過程 從上面的例子中我們可以看到,類的宣告和結構的宣告非常類似,只是限定符後面是 struct 還是 class 的區別,而且使用時,定義新的結構和定義新的類的方法也非常類似。那麼類和結構的具體區別是什麼呢?二 類與結構的差別 1.值型別與引用型別 結構...

C 中struct與class的區別

1。字面上的區別 在字面上struct是structure的縮寫,通常叫做 結構體 在c語言裡用於將多種資料 多個變數組織在一起,便於表達比較複雜的資料型別,在c 中為了相容c語言保留了該關鍵字,並且保留了c語言中的所有功能。雖然在字面上struct與class的含義不一樣,但在c 中其功能基本是相...