封裝集合
範例:
1 #include 2#define max_student_count 2034
class
student512
13int getid() const
1417
void setid(int
nid)
1821 qstring getname() const
2225
void
setname(qstring name)
2629 qstring getdepartment() const
3033
void
setdepartment(qstring department)
3437
38bool
operator ==(const student& student) const
3944
45private:46
intm_nid;
47qstring m_name;
48qstring m_department;
49};
5051
class
school
5260}61
62//
獲取到的僅僅只是乙個副本
63const qlistgetstudents()
6467
68void
addstudent(student student)
6972
73void removestudent(int
nid)
7483 ++citer;84}
85}8687
private
:88 qlistm_students; //
集合89
};90
91/*
92* 有個函式返回乙個集合。讓這個函式返回該集合的乙個唯讀副本,並在這個類中提供新增/移除集合元素的函式。
93*/
9495
void
main()
96
總結有個函式返回乙個集合。讓這個函式返回該集合的乙個唯讀副本,並在這個類中提供新增/移除集合元素的函式。
good good study, day day up.
順序 選擇 迴圈 總結
小酌重構系列 24 封裝集合
當方法返回型別或屬性型別為集合時,有些開發者會千篇一律地使用ilist集合。然而ilist具有集合的所有操作,這意味著呼叫者不僅可以讀取集合資訊,還能夠修改集合。業務需求本來只是為呼叫者提供乙個可讀的集合,例如資料的查詢和展示,但當方法返回ilist時,無疑隱式地開放了集合可寫的許可權。此時,我們無...
31 天重構學習筆記1 封裝集合
摘要 由於最近在做重構的專案,所以對重構又重新進行了一遍學習和整理,對31天重構最早接觸是在2009年10月份,由於當時沒有訂閱 sean chambers的blog,所以是在國外的社群上閒逛的時候鏈結過去的。記得當時一口氣看完了整個系列並沒有多少感覺,因為這些基本上專案都 在使用,只是我們沒有專門...
203 07 05 封裝 繼承 多型
繼承 1 oc是單一繼承 2 封裝 隱藏內部 m檔案 實現 穩定外部 h檔案 介面。屬性封裝了例項變數 方法封裝了具體實現 類封裝了方法和屬性 封裝的好處 使用更加簡單,變數更加安全,可以隱藏內部實現細節,開發速度快 3 私有變數 private,私有方法 在.m中實現,在.h中沒有宣告,私有成員變...