結構體和類的區別

General 更新 2024年05月16日

  1.C的結構體和C++結構體的區別

  C的結構體內不允許有函式存在,C++允許有內部成員函式,且允許該函式是虛擬函式。所以C的結構體是沒有建構函式、解構函式、和this指標的。

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

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

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

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

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

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

  2.C++的結構體和C++類的區別

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

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

黨委與黨組的區別
電阻屏和電容屏有什麼區別
相關知識
結構體和類的區別
工業設計工科類和美術類的區別
虛擬地址和實體地址的區別和聯絡
視訊記憶體容量和視訊記憶體位寬的區別
Neither...nor的用法小結_neither和nor的區別
計算機惡意軟體和病毒區別
霾和霧的區別
堆和棧的區別
電子琴單指與多指和絃的區別
鼻涕和痰的區別