C++的三种继承方式简述
来源:互联网 发布:阿里云客服能手机吗 编辑:程序博客网 时间:2024/06/01 09:33
C++对父类(也称基类)的继承有三种方式,分别为:public继承、protected继承、private继承。三种继承方式的不同在于继承之后子类的成员函数的“可继承性质”。
在说三种继承方式导致的子类成员函数可继承性质改变之前,先说一下在定义类的成员(包括函数和属性)的时候,在其前面添加public 或 protected 或 private对成员的可继承性的影响。其中,public类型的成员,在被继承的时候,能直接被子类使用,注意,如果成员属性是public的话,子类则可直接调用该成员属性。例如:
class A // 父类{public: A(); int size;}
class B:public A // 子类{public: change(const int x) { size = x; }}
我这里写了个很简单的例子,其中父类A具有一个public类型的成员函数A()和一个public类型的成员属性size(int)。因为size是public的,所以在A的子类B中,B的成员函数可以直接调用size进行修改。因为size也是B的属性并且是可见也是可修改的。
如果成员是protected的话,表明只有这个类的继承类(子女)或者友好的类(friend)能购使用(直接调用)这些成员,否则不能使用。然后private成员的话固然是只有自己本身这个类可用,对其他任何类都不可见,也不可用,引用百度百科上的一段话概括这三者就是:
“1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。”
好,下面进入正题,就是三种对父类的不同继承方式对子类可继承方式的影响:
(1)public继承:
不改变父类成员的继承性质(public、protected、private),也就是说,父类public的成员在子类中仍然是public的,父类protected的成员在子类中仍然是protected的。
(2)protected继承:
父类public类型的成员在子类中变为protected性质,protected的被继承依然是protected的。
(3)private继承:
父类所有成员在被子类中都变成或者保留为private性质的。
嗯,就这么简单。
********** 2016-8-16补充 ***********
今天看到《Datastructure and algorithm analysis in java》一书里面的两句话,觉得挺值得理解下的:
- C++的三种继承方式简述
- C++——三种继承方式
- C++——三种继承方式与三种访问权限的相互组合
- C++——三种继承方式与三种访问权限的相互组合
- C++——三种继承方式与三种访问权限的相互组合
- 简述java加载资源文件的三种方式
- 三种继承方式
- 三种继承方式
- C++的三种继承方式
- hibernate 实现继承的三种方式
- c++的三种继承方式
- Hibernate继承映射的三种方式
- 派生类的三种继承方式
- c++的三种继承方式
- c++的三种继承方式
- C++继承的三种方式
- C++的三种继承方式
- 三种继承方式的区别
- H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
- erl_list-打印杨辉三角
- JDBC连接常用数据库 基本的CURD
- AWS EC2搭建tomcat服务器并托管应用
- centos6.4搭建apache+mysql+php环境
- C++的三种继承方式简述
- oracle 僵尸session的处理方法
- win7安装IIS及将网站发布到IIS上
- 取连续数据的最值,以及对应的区间。
- Selector
- ZXing范例导入项目eclipse编译出现的版本错误问题
- sublime语法
- Spring MVC checkbox and checkboxes example
- mac下svn问题——“.a”(静态库)文件无法上传解决