码迷,mamicode.com
首页 > 编程语言 > 详细

【C/C++】继承与访问控制

时间:2016-08-18 00:44:46      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:

常见问题

Q1. 类child从类parent公有派生,则类child可以访问类parent中的哪些成员?

  A. public成员  B. private成员  C. protected成员  D. 数据成员

Q2. 类child从类parent公有派生,若有"child c;",那么c可以访问类parent中的哪些成员?

  A. public成员  B. private成员  C. protected成员  D. 都不能访问

Q3. 类child从类parent私有派生,则类child可以访问类parent中的哪些成员?

  A. public成员  B. private成员  C. protected成员  D. 都不能访问

Q4. 类child从类parent私有派生,若有"child c;",那么c可以访问类parent中的哪些成员?

  A. public成员  B. private成员  C. protected成员  D. 都不能访问

Q5. 类child从类parent保护派生,则类child可以访问类parent中的哪些成员?

  A. public成员  B. private成员  C. protected成员  D. 都不能访问

Q6. 类child从类parent保护派生,若有"child c;",那么c可以访问类parent中的哪些成员?

  A. public成员  B. private成员  C. protected成员  D. 都不能访问

继承与访问控制

1. 继承

  通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出来的类称为派生类,又称为子类。

  在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。

  单继承的定义格式如下:

1 class <派生类名> : <继承方式> <基类名>
2 {
3     <派生类新定义成员>
4 } ; 

  其中,<派生类名>是新定义的一个类的名字,它是从<基类名>中派生的,并且按指定的<继承方式>派生的。<继承方式>常使用如下三种关键字给予表示:

  public:表示公有基类;

  private:表示私有基类;

  protected:表示保护基类。

  派生类对象由多个部分组成:派生类本身定义的(非static)成员加上由基类(非static)成员组成的子对象。

  多继承的格式如下:

1 class <派生类名> : <继承方式1> <基类名1>, <继承方式2> <基类名2>...
2 {
3     <派生类新定义成员>
4 } ; 

  可见,多继承与单继承的区别从定义格式上看,主要是多继承的基类多于一个。

  如果一个类有多个直接基类,而这些直接基类又有一个共同的基类,则在最低层的派生类中会保留这个间接对共同基类数据成员的多份同名成员。

  为了解决这个问题,提出了虚继承的概念。虚继承时,公共基类在对象模型中只有一份拷贝。

2. 基类成员在派生类中的访问属性

  派生类可以继承基类中除了构造函数和析构函数(赋值运算符重载函数也不能被继承)之外的成员,但这些成员的访问属性在派生过程中是可以调整的。从基类继承来的成员在派生类中的访问属性是由继承方式控制的。

【C/C++】继承与访问控制

标签:

原文地址:http://www.cnblogs.com/xiaoxxmu/p/5782330.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!