C++ 中的 public、private、protected 只能修饰类的成员,不能修饰类,C++中的类没有共有私有之分,
public、protected、private 三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限定符,
只要在类里的某一个地方写出一个访问级别并在其后加一个冒号,从那个地方开始往后的所有方法与属性都将受到相应的保护,直到遇到下一个访问级别或者是达到这个类的末尾为止,
根据C++软件设计规范:成员变量以及只在类内部使用的成员函数(只被成员函数调用的成员函数)都建议声明为 private,
而只将允许通过对象调用的成员函数声明为 public。声明为 protected 的成员在类外也不能通过对象访问,但是在它的派生类内部可以访问,
这种将成员变量声明为 private、将部分成员函数声明为 public 的做法体现了类的封装性。所谓封装,是指尽量隐藏类的内部实现,只向用户提供有用的成员函数。
使用private的好处是:因为是类的内部实现,其它代码根本访问不到private保护的属性,这样可以避免“牵一发而动全身”,
C++中的类没有共有私有之分,但是在继承的时基类之前是可以用的访问修饰符
class Pig : public Animal {.... };
上处的public是在告诉编译器:继承的方法与属性的访问级别不发生任何改变,-即 public仍可以被所有代码访问,protected只能由基类的子类访问,private则只能由基类本身访问
如写class Pig : protected Animal { ... };
上处的protected 是在告诉编译器:把基类的访问级别改为protected,如果原来是public的话,这将使得这个子类外部的代码无法通过子类去访问基类中的public
如写class Pig : pirvate Animal { ... };
上处的pirvate 是在告诉编译器:是在告诉编译器从基类继承来的每一个成员都当成private来对待,这意味着只有这个子类可以使用从基类继承来的元素,