C++進階--結構體和類
阿新 • • 發佈:2018-12-24
// 單純從語言上來說,兩者唯一的區別是,預設成員是公有還是私有 // 從使用習慣上 // 小的消極物件,包含公有資料,沒有或僅有很少的基本的成員函式 -- 資料容器 struct Person_t { string name; unsigned age; }; // 大的積極物件,包含私有資料,通過公有函式作為介面 class Person { string name_; unsigned age_; // m_age, _age, _C, __ public: unsigned age() { return age_; } // getter / accessor 提供封裝,減少耦合 void set_age(unsigned a) { age_ = a; } // setter / mutator }; int main() { Person_t Pt; cout << Pt.age; Person P; cout << P.age(); P.set_age(4); } // 總結: // 1. 包含公有資料的消極物件使用結構體struct,包含私有資料的積極物件使用類class // 2. 使用setter/getter to訪問類的資料 // 3. 如果可能避免使用setter/getter,結構是否需要重新設計