public/private/protected訪問控制權限的區別,privateprotected
//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;
}