2018-02-09 创建人:Ruo_Xiao
邮箱:xclsoftware@163.com
一、封装
- public
其成员是类与类外的接口,其对象可以访问。 - protected
只能是类内(自己)以及派生类(子女)可以使用。 - private
只能是该类私有财产,子女不可享用。 - 源码
#include <iostream>
using namespace std;
//基类
class GrandFather
{
public:
GrandFather()
{
}
~GrandFather()
{
}
public:
int GF1;
//无论是public、protected还是private都可以
//在类内进行访问
void play_G()
{
GF1 = 4;
GF2 = 5;
GF3 = 6;
}
protected:
int GF2;
private:
int GF3;
};
//派生类
class Father1 : public GrandFather
{
public:
Father1()
{
}
~Father1()
{
}
public:
int F1_1;
void play_F1()
{
GF1 = 7;
//派生类可以访问基类的protected成员
GF2 = 8;
//派生类不可访问基类的private成员
//GF3 = 9;
}
protected:
int F1_2;
private:
int F1_3;
};
int main()
{
GrandFather G;
G.GF1 = 1;
//G.GF2 = 2; //类外无法访问protected成员
//G.GF3 = 3; //类外无法访问private成员
Father1 F1;
F1.GF1 = 7;
//F1.GF2 = 8; //类外无法访问protected成员
//F1.GF3 = 9; //类外无法访问private成员
cin.get();
return 0;
}
二、继承
有public, protected, private三种继承方式,它们相应地改变了基类成员的访问属性。
1、public继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:public, protected, private。
2、protected继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:protected, protected, private。
3、private继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:private, private, private。