C C 中結構體的區別

2021-07-05 12:00:42 字數 593 閱讀 5542

c中的結構體和c++中結構體的不同之處:在c中的結構體只能自定義資料型別,結構體中不允許有函式,而c++中的結構體可以加入成員函式。

c++中的結構體和類的異同:

一、相同之處:結構體中可以包含函式;也可以定義public、private、protected資料成員;定義了結構體之後,可以用結構體名來建立物件。但c中的結構體不允許有函式;

也就是說在c++當中,結構體中可以有成員變數,可以有成員函式,可以從別的類繼承,也可以被別的類繼承,可以有虛函式。

二、不同之處:結構體定義中預設情況下的成員是public,而類定義中的預設情況下的成員是private的。類中的非static成員函式有this指標,(而struct中沒有是錯誤的,一直被誤導啊,經過測試struct的成員函式一樣具有this指標),類的關鍵字class能作為template模板的關鍵字 即templateclass a{}; 而struct不可以。

實際上,c中的結構體只涉及到資料結構,而不涉及到演算法,也就是說在c中資料結構和演算法是分離的,而到c++中一類或者乙個結構體可以包含函式(這個函式在c++我們通常中稱為成員函式),c++中的結構體和類體現了資料結構和演算法的結合。

C C 中的結構體

在c中 typedef struct studentstu struct student stu1 stu stu2 stu1.a 2 stu2.a 3 使用typedef後,stu和struct student一樣,是一種結構體型別,能用來定義變數。struct student stu 在c中,不...

C C 類和結構體的區別

在c 中,結構體是一種特殊形態的類。類中的非static成員函式有this指標,類的關鍵字class能作為template模板的關鍵字 即template class a 而struct不可以。c 中,不使用結構體絲毫不會影響程式的表達能力。c 之所以要引入結構體,是為了保持和c程式的相容性。但有時...

C C 中的結構體 struct

什麼是結構體?簡單的來說,結構體就是乙個可以包含不同資料型別的乙個結構,它是一種可以自己定義的資料型別,它的特點和陣列主要有 兩點不同,首先結構體可以 在乙個結構中宣告不同的資料型別,第二相同結構的結構體變數是可以相互賦值的,而陣列是做不到的,因為陣列是單一資料型別的資料集合,它本身不是資料型別 而...