派生类继承问题和访问权限问题
2017-03-01 11:28
225 查看
当一个子类从父类继承时,父类的所有成员成为子类的成员,此时对父类成员的访问状态由继承时使用的继承限定符决定。
1.如果子类从父类继承时使用的继承限定符是public,那么
(1)父类的public成员成为子类的public成员,允许类以外的代码访问这些成员;
(2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员;
(3)父类的protected成员成为子类的protected成员,只允许子类成员访问;
2.如果子类从父类继承时使用的继承限定符是protected,那么
(1)父类的public成员成为子类的protected成员,只允许子类成员访问;
(2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员;
(3)父类的protected成员成为子类的protected成员,只允许子类成员访问
3.如果子类从父类继承时使用的继承限定符是private,那么
(1)父类的public成员成为子类的private成员,只允许子类成员访问;
(2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员;
(3)父类的protected成员成为子类的private成员,只允许子类成员访问;
//公有继承 对象访问 成员访问
public --> public Y Y
protected --> protected N Y
private --> private N N
//保护继承 对象访问 成员访问
public --> protected N Y
protected --> protected N Y
private --> protected N N
//私有继承 对象访问 成员访问
public --> private N Y
protected --> private N Y
private --> private N N
1.如果子类从父类继承时使用的继承限定符是public,那么
(1)父类的public成员成为子类的public成员,允许类以外的代码访问这些成员;
(2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员;
(3)父类的protected成员成为子类的protected成员,只允许子类成员访问;
2.如果子类从父类继承时使用的继承限定符是protected,那么
(1)父类的public成员成为子类的protected成员,只允许子类成员访问;
(2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员;
(3)父类的protected成员成为子类的protected成员,只允许子类成员访问
3.如果子类从父类继承时使用的继承限定符是private,那么
(1)父类的public成员成为子类的private成员,只允许子类成员访问;
(2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员;
(3)父类的protected成员成为子类的private成员,只允许子类成员访问;
//公有继承 对象访问 成员访问
public --> public Y Y
protected --> protected N Y
private --> private N N
//保护继承 对象访问 成员访问
public --> protected N Y
protected --> protected N Y
private --> protected N N
//私有继承 对象访问 成员访问
public --> private N Y
protected --> private N Y
private --> private N N
相关文章推荐
- C++中 public和private派生类继承问题和访问权限问题
- C++中public,protected,private派生类继承问题和访问权限问题
- C++中 public和private派生类继承问题和访问权限问题
- C++中 public和private派生类继承问题和访问权限问题
- C++中public,protected,private派生类继承问题和访问权限问题
- C++中 public和private派生类继承问题和访问权限问题
- C++中 public和private派生类继承问题和访问权限问题
- C++中 public和private派生类继承问题和访问权限问题
- C++中 public和private派生类继承问题和访问权限问题
- C++中public,protected,private派生类继承问题和访问权限问题
- C++中的 public和private以及protected派生类继承问题和访问权限问题
- C++中 public和private派生类继承问题和访问权限问题
- [转]c++类继承中的using声明,派生类中用using声明改变基类成员的访问权限
- OC学习中关于@private@protected@pakege@public的访问权限和继承问题
- 在继承中派生类成员的访问权限测试
- 子类继承父类放法访问权限的问题
- 继承产生的友元访问权限问题
- public protected private 成员函数和成员变量在public protected private 继承后访问权限问题
- C++ 中基类及派生类中继承成员访问权限
- c++类继承中的using声明,派生类中用using声明改变基类成员的访问权限[zz]