分類
C++ 程式語言 飛翔領航

C++比C物件導向?到底差在哪?

本文簡要說明 C++ 相較於 C 更具物件導向特性,主要因其原生支援 class、存取控制與命名空間。雖然 C 並非物件導向語言,但仍可透過 struct 與函式模擬部分物件導向概念,然而在繼承等特性上仍有所不足。

接觸過 C-family 語言的人應該都聽過「C++比C更適合物件導向」。但具體差異在哪,沒有實際在碰的人(就像我),不科普也不太清楚,所以就用這篇文章記錄分享一下吧。

C++ 多了什麼?

C++在C的語言架構上,原生支援 class 的資料型態,而且有更完善的變數存取控制 (private, public, protected) 和 namespace 用法,能夠更加落實物件導向的程式碼。

所以概括地從物件導向的角度而言,C++可以說是C的物件導向擴充。(當然C++不只如此)

難道 C 語言不能物件導向程式設計嗎?

用 C 語言並非不能實作物件導向,但因為不具備物件導向的型態,所以必須用 function 和 struct 去模擬物件的封裝,且沒有繼承的概念。所以所謂「C++ 比 C 物件導向」,並不代表 C 不能做,而是 C++ 有更多原生支援的元素,C 只能以基本的 function 和 struct 去模擬。

說說你有什麼想法!

使用 WordPress.com 設計專業網站
立即開始使用