結構與類,C和C

2021-06-16 00:43:58 字數 930 閱讀 2813

一,c下的struct

typedef struct _snamesname;

1. 就是結構,很簡單的結構,可以有成員資料。

2. 不能有成員函式,更不能有class下面的構造和析構函式了。

二,c++下面的class

class cname;

1. 按照c++標準的定義,struct就是類。所以在c++下struct根class一樣可以有成員函式,包括構造與析構函式,甚至可以按照面相物件的技術完成繼承與派生。

2. struct與class不同的情況在於預設情況下,struct的所有成員都是public的,而class預設情況下是private的。

四,另外的話

1. 在c++下,盡量把struct當作一般的結構來用,而把class當作物件導向的類來用,儘管他們幾乎是沒有差別的。

2. 在c下,可以用struct寫出類似class的東西,即將所資料封裝在乙個struct中作為成員資料,另外再寫對這個struct的操作函式,這些函式是全域性的,他們呼叫pthis指標來操作具體的物件。當然這永遠都只能是類似class的東西。如下:

typedef struct _sname sname;

sname *snmae_new()

void snmae_delete(sname *pthis)

void snmae_operator1(sname *pthis)

五,union的相關

1. c下的union功能很單一。

2. c++下的union實際上是介於c中union和c++中class之間的一種結構,他同class一樣可以有自己的成員函式,但是不能有static的函式,也不能有construct和destruct。

3. 儘管c++下的union也能當作類來用,但是這並不是很好的方法,這並不能很好的體現union的設計初衷,通常都將union的外層在封裝乙個class。

c 類和結構

類和結構都是用來建立物件 的模版。結構與類的區別 1.他們在記憶體中儲存方式,訪問方式 類是堆上的引用型別,而結構是儲存在棧上的值型別 2.都用new來宣告例項。不過結構的new並不是用來分配堆中的記憶體,並且可以不用new,只是呼叫相應的建構函式 用來初始化字段值。結構體的建構函式 3.結構不支援...

結構 類和介面 C

結構 類和介面 c 1 結構 語法 結構修飾符 struct 結構名 結構的特點 2 類 類描述案例一系列在概念上有相同含義的物件,並為這些物件統一定義了程式語言上的屬性和方法。語法 類修飾符 class 類名 類修飾符 c 中,類只支援單繼承,不支援多重繼承,即一次只允許繼承乙個類,不能同時繼承多...

C結構體 C 結構體 和 C 類的區別

c結構體 c 結構體基本相同,c 類主要是方法的實現。結構體是資料型別的集合 類是資料型別加方法的集合,基本如此,更注重方法。1.c的結構體和c 結構體的區別 1 c的結構體內不允許有函式存在,c 允許有內部成員函式,且允許該函式是虛函式。所以c的結構體是沒有建構函式 析構函式 和this指標的。2...