結構體和類的區別(適合初學者C和C 學習)

2021-07-12 05:00:52 字數 619 閱讀 1980

1.1c的結構體內不允許有函式存在,c++允許結構體內有內部成員函式,且允許該函式是虛函式。所以c的結構體是

沒有建構函式、析構函式、和this指標的。

1.2    c的結構體對內部成員變數的訪問許可權只能是public,而c++允許public,protected,private三種。

1.3    c語言的結構體是不可以繼承的,c++的結構體是可以從其他的結構體或者類繼承過來的。

以上都是表面的區別,實際區別就是面向過程和物件導向程式設計思路的區別:

c的結構體只是把資料變數給包裹起來了,並不涉及演算法。

而c++是把資料變數及對這些資料變數的相關演算法給封裝起來,並且給對這些資料和類不同的訪問許可權。

c語言中是沒有類的概念的,但是c語言可以通過結構體內置立函式指標實現物件導向思想。

2.1     c++結構體內部成員變數及成員函式預設的訪問級別是public,而c++類的內部成員變數及成員函式的預設訪

問級別是private。

2.2     c++結構體的繼承預設是public,而c++類的繼承預設是private。

continue>>

這些你都消化了?

a .b.once again (not  this blog)

python和c語言哪個更適合初學者

c語言是編譯型語言,經過編譯後,生成機器碼,然後再執行,執行速度快,不能跨平台,一般用於作業系統,驅動等底層開發。python是編譯型還是解釋型這個界限並不明顯,但大致上可以理解為解釋型語言,執行速度慢,由於python虛擬機器,python是可以跨平台的,python高度整合適合於軟體的快速開發。...

堆和棧的區別 給初學者

堆和棧的區別 給初學者 一 預備知識 程式的記憶體分配 由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由...

堆和棧的區別 給初學者

一 預備知識 程式的記憶體分配 由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構中...