C++ 继承之访问权限
来源:互联网 发布:软件升级必然凯文凯利 编辑:程序博客网 时间:2024/04/30 01:43
关于C++继承,可分成三种方式,分别为public继承,private继承与protected继承,其中public继承被称为接口继承,是因为此类继承所得的派生类可自由转化为基类,具有与基类相同的接口(基类有的函数,派生类均有,且功能一致);而private继承与protected继承则称之为实现继承,取之用以实现基类的具体功能之意。
关于C++各种继承方式之后所得的派生类对于父类成员的访问权限可以参见博文:http://see.xidian.edu.cn/cpp/biancheng/view/91.html
而父类成员对于不同位置的访问权限则可以参见博文:http://blog.csdn.net/xdrt81y/article/details/17144885
具体来看一个程序:
#include<iostream>#include<memory.h>#include<assert.h>using namespace std;class A{int a;public:A(int i):a(i){}void print(){cout<<a<<endl;}};class B:public A{int b;public:B(int i = 3):A(i-1),b(i){}void out(){cout<<b<<endl;cout<<a<<endl;}};int main(){A a;a.print();B b;b.out();}
此处,选用了public继承为例,对某一只有private成员的类进行了接口继承,并在派生类中队此成员进行访问,程序输出结果如下:
t.cpp: In member function 'void B::out()':Line 9: error: 'int A::a' is privatecompilation terminated due to -Wfatal-errors.即派生类对于基类的private成员不具访问权限,访问失败。
由此可见,不论以何种方式对基类进行继承,private成员对于派生类均不可访问,欲访问只能通过基类的public接口(函数)实现。而protected成员是专门用以为派生提供方便的成员类型,此类成员在子类中具有与public成员一般无二的访问权限。但是protected成员对于类外而言,却依然是宫门深锁不可触摸。protected继承将基类中的public成员与protected成员转变成子类的protected成员,而private继承则转变成private成员(此时,子类对于此二类成员依然具有着访问权限,只是对于外界以及子类的子类而言,此二者不可访问而已)。
0 0
- C++ 继承之访问权限
- 继承与访问权限
- 继承的访问权限
- 继承与访问权限
- 继承与访问权限
- 继承访问权限
- objective-C语法系列之---访问权限
- C++派生继承访问权限
- C++ 继承 访问权限控制
- C++继承体系访问权限
- 1.2 继承与访问权限
- Java继承、super、继承访问权限
- C++:继承访问说明符
- java继承之权限
- C++——三种继承方式与三种访问权限的相互组合
- C++——三种继承方式与三种访问权限的相互组合
- C++——三种继承方式与三种访问权限的相互组合
- C++:【转】3种继承关系和3中访问权限
- Sun-Java语言编码规范
- RFI\RFP\RFQ的区别
- 重写view的onAttachedToWindow () 和 onDetachedFromWindow ()与Home键屏蔽,捕获,修改
- Intel Galileo笔记(四)windows on galileo的配置
- Sort Colors Java
- C++ 继承之访问权限
- Cocos2d-x 瓦块地图小游戏 (五) 城墙 与 吃瓜
- 小心骗子,买放心机票
- MyBatis Spring整合配置映射接口类与映射xml文件
- 网站是否要修改标题
- Afinal 框架 Afinal DB的学习
- OGNL使用小结
- 普通IO口模拟实现I2C通信及应用解析
- 音视频对讲SDK让游戏嗨起来