C++中struct與class的區別以及聯繫

上一週因爲參加一個比賽,整個都投入進去了,也就荒廢了看書以及博客,不過不代表沒有遇到新的問題。

在比賽中,我用到了結構體struct,在我過去的印象裏,struct代表結構體,主要存放一些數據變量,打包起來,成爲一個整體,不過前段時間在C++ primer書上類那一章看到,struct與class似乎是可以部分混用的,可以存放函數,可以繼承以及派生,這讓我感到疑惑,struct和class到底有什麼區別。

查閱相關資料後發現,struct基本上擁有class的所有功能,可以擁有成員函數,可以有private、public、protected說明,可以繼承與派生、可以擁有多態的屬性,可以擁有構造以及析構函數,具體詳見:

http://www.jb51.net/article/55877.htm

但是,二者之間還是有區別的,主要體現在:

1.默認繼承權限,如果不指定,來自class的繼承按照private繼承處理,來自struct的繼承按照public繼承處理;

2.成員的默認訪問權限。class的成員默認是private權限,struct默認是public權限。以上兩點也是struct和class最基本的差別,也是最本質的差別;

但是實際編程中,儘量從功能上進行區別,如果想要表示一種特殊的數據結構,用struct,如果要表示類,完成更復雜的功能,還是用class,但是從語法上來看,二者的區別是很小的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章