类的保护成员

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;
}
原文地址:https://www.cnblogs.com/lasnitch/p/12764252.html