类的保护成员
1、基类的private成员:可以被下列函数访问
- 基类的成员函数
- 基类的友元函数
2、基类的public成员:可以被下列函数访问
- 基类的成员函数
- 基类的友元函数
- 派生类的成员函数
- 派生类的友元函数
- 其他的函数
3、基类的protected成员:可以被下列函数访问
- 基类的成员函数
- 基类的友元函数
- 派生类的成员函数可以访问当前对象的基类的保护成员
4、举栗子
class Father {
private:
int nPrivate;//私有成员
public:
int nPublic;//公有成员
protected:
int nProtected;// 保护成员
};
class Son :public Father{
void AccessFather () {
nPublic = 1; // ok;
nPrivate = 1; // wrong
nProtected = 1; // OK,访问从基类继承的protected成员
Son f;
f.nProtected = 1; //wrong ,f不是当前对象
}
};
int main()
{
Father f;
Son s;
f.nPublic = 1;// Ok
s.nPublic = 1; // Ok
f.nProtected = 1; // error
f.nPrivate = 1;// error
s.nProtected = 1; //error
s.nPrivate = 1;// error
return 0;
}