回覆列表
-
1 # 藍風24
-
2 # 使用者4226458628992
struct和class的界定在C++中已經被模糊化。除了預設許可權以外,幾乎沒有區別。
結構體是一個數據集合的關係,用來將強關聯的幾個變數封裝為一個集合進行整體操作。
個人認為,使用結構體有以下幾種情形:
資料具有強關聯。如果拆分管理會導致混亂。例如儲存學生姓名和成績。使用兩個陣列進行儲存時,會導致所有的操作都需要對兩個陣列進行管理。一旦發生遺漏,兩個陣列的Index關聯丟失,會導致兩個陣列都報廢。
資料重新命名。例如我們有個學生年齡,老師年齡需要進行儲存。我們可以用
int studentAge, teacherAge。
或者
student.age, teacher.age
後者更加直觀,而且日後擴充套件更加方便。
限制許可權。我們可以對變數進行private限定,避免其他模組進行修改。
struct為結構體,可組合多種型別的變數,C++中,struct除了預設訪問為public,其他與class無異,所以可以有函式;
struct裡只有一個變數:
-1.方便擴充套件,你可以繼續向這個struct裡新增其他型別的變數,程式碼其他部分就可以不用大改;
-2.可以向struct裡新增函式,把一些函式寫到一個struct裡,方便你呼叫。
另外,struct只有一個變數可以,沒有變數也可以,記憶體裡只有一個佔位符,這麼做也是為以後新增變數佔位。