通过一个列子来说明protected属性
#include <iostream>
using namespace std;
class A {
protected:
int p;
};
class B : public A
{
public:
void set(int i)
{
p = i;
}
void print()
{
cout << p;
}
};
int main()
{
A a;
B b;
//cout << a.p;//不能访问
//cout << b.p;//不能访问
b.set(1);
b.print();
}
由此可见,protected和private一样,不能被直接访问。
另外,protected修饰的成员在派生类中可以通过方法访问,而private不能。