公有继承 保护继承 私有继承
2016-03-02 20:15
190 查看
class TA
{
private:
int a;
protected:
int b;
public:
int c;
};//定义类TA;
class TB:public TA{}; //#1
class TB:protected TA{}; //#2
class TB:private TA{}; //#3
1.公有继承、保护继承、私有继承不会改变基类TA成员a b c在TB中的访问权限,即#1 #2 #3 三种场景下,TB的成员函数都只能范文b c.
2.公有继承、保护继承、私有继承会影响TB定义的对象及继承TB的类对a b c的访问权限。
(1)场景#1,a b c在TB中的访问权限不变,还分别是private protected public,则c可以被TB对象和TB的子类成员函数访问,b只能被TB的子类成员函数访问。
(2)场景#2,a b c在TB中的访问权限为private protected protected,b c能在TB子类成员函数中被访问,不能被TB对象直接访问。
(3)场景#3,a b c在TB中的访问权限为private private private ,a b c不能被TB子类成员函数访问,也不能被TB对象直接访问。
{
private:
int a;
protected:
int b;
public:
int c;
};//定义类TA;
class TB:public TA{}; //#1
class TB:protected TA{}; //#2
class TB:private TA{}; //#3
1.公有继承、保护继承、私有继承不会改变基类TA成员a b c在TB中的访问权限,即#1 #2 #3 三种场景下,TB的成员函数都只能范文b c.
2.公有继承、保护继承、私有继承会影响TB定义的对象及继承TB的类对a b c的访问权限。
(1)场景#1,a b c在TB中的访问权限不变,还分别是private protected public,则c可以被TB对象和TB的子类成员函数访问,b只能被TB的子类成员函数访问。
(2)场景#2,a b c在TB中的访问权限为private protected protected,b c能在TB子类成员函数中被访问,不能被TB对象直接访问。
(3)场景#3,a b c在TB中的访问权限为private private private ,a b c不能被TB子类成员函数访问,也不能被TB对象直接访问。
相关文章推荐
- linux线程
- 数组的循环移位
- hdoj 5505 GT and numbers
- 简单插入排序
- 内核裁剪,将自己写的驱动加入内核及按键驱动的代码(arm TQ2440)
- android四大组件之一Serveric
- ZooKeeper学习笔记(一)
- 06-联系人管理(xib应用)
- bzoj 1911: [Apio2010]特别行动队 2011-12-26
- Windows编程基础
- 是否素数
- MySql “Row size too large (> 8126)”
- Elecator
- Qt之QHeaderView自定义排序(终极版)
- Qt之QHeaderView自定义排序(终极版)
- jps命令(Java Virtual Machine Process Status Tool)
- OC中的字符串的一些操作
- Nginx配置SSL证书部署HTTPS网站
- 24. Swap Nodes in Pairs
- 在Xcode 中如何打包测试版 给测试工程师使用