類通常分為以下兩部分
- -類的內部具體實現
- -類的外部使用方法
比如:
用戶使用手機,只需要知道如何使用.
而手機開發者,則需要考慮手機內部的實現細節.
類的封裝
並不是類的每個成員變量和成員函數都要對外公開
比如:
女孩不希望外人知道自己的體重weight和年齡age
男孩不希望外人知道自己的身高height和工資salary
而某些屬性是對外公開的
比如:姓名,學歷,國籍等.
所以在類里,可以給成員變量和成員函數定義訪問級別:
- -public 公開成員,允許成員變量和成員函數可以被類內部和外界使用(默認為public)
- -private 私有成員,只能被類內部使用
類成員的作用域
類成員的作用域都只在類的內部,外部無法直接訪問
成員函數可以直接訪問成員變量和調用成員函數
類的外部可以通過類變量訪問public成員
類成員的作用域與訪問級別沒有關系
參考如下代碼:
#include <stdio.h> int i = 1; //定義全局變量 struct Test { private: int i; //定義私有成員變量i public: int j; int getI() { i = 3; return i; } }; int main() { int i = 2; //定義局部變量i Test test; test.j = 4; printf("i = %d\n", i); // i = 2; 使用局部變量 printf("::i = %d\n", ::i); // ::i = 1;使用全局變量 // printf("test.i = %d\n", test.i);// Error 訪問私有成員,出錯 printf("test.j = %d\n", test.j); //test.j = 4 printf("test.getI() = %d\n", test.getI());
// test.getI()=3 通過公開成員,去訪問私有成員 return 0; }
小結
類通常分為使用方法和內部細節兩部分
類的封裝機制(public/private)使得使用方法和內部細節相分離