相信有一點專業知識的人都知道,C語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護。在很大程度上,標准C++是標准C的超集。實際上,所有C程序也是C++程序,然而,兩者之間有少量區別。下面是最重要的區別:
結構是C的一部分,C++從C中繼承了結構,在語法上,類與結構十分相似,在關系上,這兩者也很接近,在C++中,結構的作用被拓寬了,進而使結構成為了類的一種替代方法。實際上,類與結構的惟一區別在於:在默認狀態下,結構的所有成員均是公有的,而類的所有成員是私有的。除此之外,類與結構是等價的,也就是說,一個結構定義了一個類的類型。
C++同時包含這兩個等價的關鍵字struct與class基於3個方面的原因。第一,加強結構的能力。在C中,結構提供了一種數據分組方法,因而讓結構包含成員函數是一個小小的改進。第二,由於類與結構是相互關聯的,所有現有C代碼到C++的移植變得更容易。第三,由於類與結構的等價性,提供兩個不同的關鍵字可以使類定義自由發展,為了保持C++與C的兼容性,結構定義必須始終受它的C定義的結束。
即使在有些地方可以使用結構來代替類,但盡量不要這么做,為了清楚起見,該用類的地方就用class關鍵字,該用C結構的地方就用struct關鍵字。