用例子说明:
class Entity
{
public:
Entity() {
X = 0;
}
private:
int X, Y;
};
class Player: public Entity
{
public:
Player() {
}
private:
};
int main()
{
Entity e;
std::cin.get();
}
如上,Entity 中有两个 private 变量 X, Y 。 Entity 的 public 构造函数是可以访问 X, Y的。 但是对于子类 Player 的构造函数来说,是不能访问 private 变量 X, Y 的。在外部函数 main() 中实例化一个Entity 的对象, 也不能访问 Entity 中的 X,Y。 即 private 变量只允许被当前类中的成员函数或者变量访问,子类和外部类或方法都是不能访问的。
那如果 X, Y 被定义为 protected 呢?
class Entity
{
public:
Entity() {
X = 0;
}
protected:
int X, Y;
};
class Player: public Entity
{
public:
Player() {
X = 2;
}
private:
};
int main()
{
Entity e;
std::cin.get();
}
可以看到,这时,子类 Player 中的方法可以访问 X, Y 了,但是 main() 函数中的实例 e 依然不能访问 X, Y.
public 就不说了,public 其实就是公开的,所有的类和方法都可以访问。
另外,如果不指定 public 或者 private 的话,那么 class 中变量或者函数默认的是private。 如果是 struct 的话,默认则是 public.
当然,还有另外一个类没有提到,Friends 类。
这个类我目前还没有学到~ 。 之后再写。