//public/private/protected訪問控制權限的區別
//時間:2016/8/16 //(一)修飾成員: //public: 在類內、類外都能使用 。 //protected: 在類內、繼承的子類中使用 。 //private: 只能在類的內部使用 。 //(二)修飾繼承關系: //public: 子類的成員可以訪問父類的public/protected的成員。 // 子類的對象可以訪問父類的public成員。 //private: 子類的成員可以訪問父類的public/protected的成員。 // 子類的對象不可以訪問父類的任何成員。 //protected:子類的成員可以訪問父類的public/protected的成員。 // 子類的對象不可以訪問父類的任何成員。 #include "stdafx.h" #include "iostream" using namespace std; class Parent { public : int a;//老爹的名字 protected: int b;//老爹的銀行密碼 private: int c;//老爹的情人 }; //保護繼承,家族的。 class Child1 :protected Parent { public: protected: public: void useVar() { a = 0;//公共的ok b = 0;//保護的ok //c = 5;//私有的不ok } }; //私有繼承,共有的。 class Child2 :private Parent { public: void useVar() { a = 0;//公共的ok b = 0;//保護的ok //c = 0;//私有的不ok } }; //公共繼承,共有的。 class Child3 :public Parent { public: void useVar() { a = 0;//公共的ok b = 0;//保護的ok //c = 0;//私有的不ok } }; int main() { Child1 c1;//保護繼承,家族的。 Child2 c2;//私有繼承,共有的。 Child3 c3;//公共繼承,共有的。 //c1.a = 6;//私有的不ok //c2.a = 6;//保護的不ok c3.a = 6; //公共的ok return 0; }