c 中類和結構體的區別和使用環境

2021-10-23 19:07:19 字數 421 閱讀 1777

區別

首先結構體的型別是值型別,類的型別是引用型別

結構體儲存在棧中 類儲存在堆中

棧的空間小 但是訪問速度快

堆的空間大 但是訪問速度相對較慢

結構體不能繼承 不能建立建構函式 結構成員不能指定為抽象(abstract) 虛(virtual)保護(protected)型別

結構體所建構函式必須為所有值賦初值

所以:結構體一般儲存輕量資料 類一般儲存相對複雜的邏輯結構的資料

使用環境:

當堆疊的空間有限 且需要大量的邏輯物件的時候 建立模擬較好一些

對於顏色這種輕量型別的時候 假如是乙個宣告顏色的陣列的時候 我們使用結構體的成本比較低

當需要表現抽象或者是多層次,類是最好的選擇 因為結構體不支援繼承

c 中結構體和類的區別

1.c的結構體和c 結構體的區別 1.1 c的結構體內不允許有函式存在,c 允許有內部成員函式,且允許該函式是虛函式。所以c的結構體是沒有建構函式 析構函式 和this指標的。1.2 c的結構體對內部成員變數的訪問許可權只能是public,而c 允許public,protected,private三...

C 中類和結構體的區別

c 結構體內部成員變數及成員函式預設的訪問級別是public,而c 類的內部成員變數及成員函式的預設訪問級別是private。c 結構體的繼承預設是public,而c 類的繼承預設是private,所以類在繼承的時候需要public 結構體 沒有預設的建構函式,但是可以新增建構函式 沒有析構函式 沒...

C 中結構體和類的區別

c 中結構型別和類型別在語法上非常相似,他們都是一種資料結構,都可以包括資料成員和方法成員。結構和類的區別 1 結構是值型別,它在棧中分配空間 而類是引用型別,它在堆中分配空間,棧中儲存的只是引用。2 結構型別直接儲存成員資料,讓其他類的資料位於堆中,位於棧中的變數儲存的是指向堆中資料物件的引用。c...