public,private,protected 區別
(1)、公有成員public member 在程式的任何地方都可以被訪問實行資訊隱藏的類將其public 成員限制在成員函式上這種函式定義了可以被一般程式用來操縱該類型別物件的操作
(2)、私有成員private member 只能被成員函式和類的友元訪問實行資訊隱藏的類把其資料成員宣告為private
(3)、被保護成員protected member 對派生類derived class 就像 public 成員一樣對其他程式則表現得像private
在類的private:節中宣告的成員(無論資料成員或是成員函式)僅僅能被類的成員函式和友元訪問。
在類的protected: 節中宣告的成員(無論資料成員或是成員函式)僅僅能被類的成員函式,友元以及子類的成員函式和友元訪問。
在類的public:節中宣告的成員(無論資料成員或是成員函式)能被任何人訪問。
public、private或proteced,它們控制變數成員和成員函式在類內和類外如何訪問。所謂類內訪問是指用類的成員函式進行訪問,而類外訪問是指用物件或指向物件的指標進行訪問。
總結:
當一個類的成員定義為public,就能夠在類外訪問,包括它的派生類。
當一個成員定義為private,它僅能在類內訪問,不能被它的派生類訪問。
當一個成員定義為proteced,它僅能在類內訪問,但是能被它的派生類訪問。
當一個成員沒有指定訪問說明符時,預設為private。
在定義派生類時,訪問說明符也能出現在基類的前面,它控制基類的變數成員和成員函式在派生類中的訪問方法。當訪問說明符為public時,稱為公有繼承。同樣地,當問說明符為protected時,稱為保護繼承,而當問說明符為private時,稱為私有繼承。
公有繼承時,基類的公有成員,變為派生類的公有成員,基類的保護成員,變為派生類的保護成員。
保護繼承時,基類的公有和保護成員,均變為派生類的保護成員。
私有繼承時,基類的公有和保護成員,均變為派生類的私有成員。