1. 程式人生 > >C++進階--結構體和類

C++進階--結構體和類

// 單純從語言上來說,兩者唯一的區別是,預設成員是公有還是私有

// 從使用習慣上
// 小的消極物件,包含公有資料,沒有或僅有很少的基本的成員函式 --  資料容器
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,結構是否需要重新設計