接觸過 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 去模擬。
