演示代码的运行环境:VS 2017
· 继承的基础知识
-
概念
继承机制是面向对象程序设计使代码可以复用的最重要的手。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。 -
定义
继承产生的新类称为派生类(子类),被继承的类称为父类(基类)。定义方式为class 类名:继承方式 基类类名
其中继承方式有public
、protected
、private
三种,继承方式的不同会影响从基类继承过来的成员在派生类中的访问权限:- 父类的private成员对子类不可见
- public继承不修改成员的访问权限
- protect继承会将父类的public成员变为子类的protect成员
- private继承会将所有继承过来的成员变为private访问
- protected成员在类外不可见
可以看出,protected访问是专为继承而设计的,而在实际应用中,我们常使用public继承,这样保证了父类的public方法子类也可以使用。
下面举一个例子简单感受一下继承
class Biology { public: bool IsAlive; protected: bool haveEat; private: std::string breed; }; class People : public Biology{ People() { IsAlive = true; haveEat = false; //breed为 Biology的 private成员不可访问 //breed = "people"; } protected: std::string name; };
能够被子类继承而不想被外界访问的使用protect,如例子中的 “吃了没” 成员,不能被子类继承的使用private,如例子中的 “物种类别” 成员。这体现了C++的封装特性。