前言
第一次在网上发布文字内容,之前一直想做,但因为各种事情耽误或者自己没有勇气键入第一个字符而一直拖延。为了使自己所学的知识能够系统的保存,这件事也非做不可了。本文属于一个系列内容,即《C++学习杂记》,各文章不会像《C++ primer》那样有序而完备,只是为了记录自己遇到问题时涉及的相关概念的阐述。
本系列第一篇文章讲述的是C++中各种继承的特性,包括公有继承、私有继承、保护继承。
各种继承特性
实际上,关于C++继承的特性完全可以由一张表来阐述(摘抄自公有继承,私有继承,保护继承的区别)
如表1所示,对一个类来说,包含三种成员:私有成员、公有成员、保护成员。下面分别围绕三种派生进行讨论。
1.公有派生
形式:class a : public b
基类私有成员:是不能被访问的,基类的私有成员只能被基类的成员函数访问到,或者是声明为友元函数(类)才可以访问
基类公有成员:是可以访问的,即公有派生类的实例可直接调用基类的公有成员(变量或函数等)
基类保护成员:也是可以访问的,但只能在类定义中的成员函数可以调用,不能在外部通过公有派生类的实例进行调用
2.私有派生
形式:class a : private b
基类私有成员:也是不能被访问的,理由同上
基类公有成员:对于私有派生类,即使基类的成员为公有,在私有派生的条件下,也全变成私有。意思是类的成员函数可以调用,在外面不能通过实例来直接调用
基类保护成员:直接把基类的保护成员变换成私有的,后续处理同上
3.保护派生
形式:class a : protected b
基类私有成员:同样,也是不能访问的,理由同上
基类公有成员:对于保护派生,将基类的公有成员变成保护派生类的保护成员
基类保护成员:基类的保护成员转变为保护派生类的保护成员
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。