`
beckshanling
  • 浏览: 262814 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

派生类的3中继承方式

    博客分类:
  • C++
 
阅读更多

1.   公有继承(public)  
  公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的。  
   
  2.   私有继承(private)  
  私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。  
   
  3.   保护继承(protected)  
  保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的。

 

  对于公有继承方式:  
   
  (1)   基类成员对其对象的可见性:  
   
  公有成员可见,其他不可见。这里保护成员同于私有成员。  
   
  (2)   基类成员对派生类的可见性:  
   
  公有成员和保护成员可见,而私有成员不可见。这里保护成员同于公有成员。  
   
  (3)   基类成员对派生类对象的可见性:  
   
  公有成员可见,其他成员不可见。  
   
  所以,在公有继承时,派生类的对象可以访问基类中的公有成员;派生类的成员函数可以访问基类中的公有成员和保护成员。这里,一定要区分清楚派生类的对象和派生类中的成员函数对基类的访问是不同的。  
   
  对于私有继承方式:  
   
  (1)   基类成员对其对象的可见性:  
   
  公有成员可见,其他成员不可见。  
   
  (2)   基类成员对派生类的可见性:  
   
  公有成员和保护成员是可见的,而私有成员是不可见的。  
   
  (3)   基类成员对派生类对象的可见性:  
   
  所有成员都是不可见的。  
   
  所以,在私有继承时,基类的成员只能由直接派生类访问,而无法再往下继承。  
   
  对于保护继承方式:  
   
  这种继承方式与私有继承方式的情况相同。两者的区别仅在于对派生类的成员而言,对基类成员有不同的可见性。  
   
  上述所说的可见性也就是可访问性。关于可访问性还有另的一种说法。这种规则中,称派生类的对象对基类访问为水平访问,称派生类的派生类对基类的访问为垂直访问。  
   
  一般规则如下:  
   
  公有继承时,水平访问和垂直访问对基类中的公有成员不受限制;  
  私有继承时,水平访问和垂直访问对基类中的公有成员不能访问;  
  保护继承时,对于垂直访问同于公有继承,对于水平访问同于私有继承。  
   
  对于基类中的私有成员,只能被基类中的成员函数和友元函数所访问,不能被其他的函数访问。

分享到:
评论

相关推荐

    C++继承与派生类实验报告

    在公有继承(`public`)中,基类的公共和保护成员在派生类中保持其原有访问级别。这意味着派生类对象可以访问基类的公共成员,而派生类的成员函数可以访问基类的保护成员。在实验的`show`函数中,派生类将调用基类的...

    c++课件 派生类与继承

    c++课件 派生类与继承

    -派生类与继承.

    【派生类与继承】是面向对象编程中的核心概念,主要应用于C++等面向对象语言。派生类是从已存在的类(称为基类或父类)派生出来的新类,它扩展或修改了基类的功能。继承是面向对象程序设计中的特性之一,允许创建一...

    三种继承方式下基类成员对派生类的可见性探讨

    三种继承方式下基类成员对派生类的可见性探讨(公有继承、私有继承、受保护继承)

    第十章 C#继承 派生类 派生类的构造方法.docx

    例如,我们可以定义一个基类,包含一些公共的成员字段和函数,然后在派生类中继承该基类,从而继承其成员字段和函数。 在上面的例子中,我们定义了一个基类baseClass,包含一个getUrl()方法,接着我们定义了一个...

    实验一、继承与派生类

    3. 如何在派生类中添加新的属性和方法,或者重写基类的方法。 4. 如何在实际程序中使用这些派生类对象,调用其特有的功能。 5. 调试和修正代码以确保程序的正确性。 通过这个实验,学生们可以深入理解面向对象编程...

    实验四、类的继承与派生 类的继承与派生

    这展示了公有继承的概念,即派生类继承了基类的所有公有和保护成员。 `CStudent` 类使用了虚拟继承 `public virtual CPeople`,这是一个特殊的继承方式,它可以防止多继承时可能出现的二义性问题。如果一个派生类...

    C++面向对象程序设计习题继承与派生.pdf

    多继承可以使得派生类继承多个基类的成员和行为特征,但也容易引发二义性问题。为了解决二义性问题,C++提供了虚基类的概念。虚基类是一种继承方式,它可以使得基类的成员在派生类中只出现一次。 在C++中,定义单...

    c++中类的派生与继承

    如果多个基类共同有一个基类,而派生类继承自这些基类,那么直接声明这个共同基类为虚基类可以确保只有一个实例存在。实验中没有直接涉及虚基类,但这是解决特定继承问题的关键。 6. 成员函数的重载: 重载允许...

    类的派生继承

    派生类继承的成员访问权限取决于基类中成员的访问权限以及继承方式。例如,基类中的公有成员在公有继承下仍然是公有成员,在保护继承下变为保护成员,在私有继承下变为私有成员。 继承和派生的相关知识点还包括: -...

    c++ 习题 派生类和继承

    C++中的继承是面向对象编程的核心特性之一,它允许创建一个新的类(派生类),该类继承自已存在的类(基类),并可以扩展或修改基类的功能。本题涉及了派生类和继承的多种概念,包括派生方式、成员访问、构造函数和...

    c++程序设计 继承与派生实验(二)

    当派生类继承基类时,基类的私有成员在派生类中不可见,只能通过基类的成员函数访问;保护成员在派生类中可见,但不能直接访问,必须通过派生类的成员函数或者基类的成员函数来访问;而公有成员在派生类中依然保持...

    c++派生类继承构造函数方法

    c++派生类继承构造函数方法!!!!!!!!!!!

    C++继承及派生类习题.doc

    在C++编程语言中,继承和派生是面向对象编程的重要特性,它们允许创建新的类(派生类)基于已存在的类(基类),从而实现代码重用和类的层次结构。以下是对这些知识点的详细解释: 1. **继承的概念**: 继承是一种...

    c++派生类及继承实验报告.doc

    通过本实验,我们将掌握派生类的声明方法、派生类构造函数的定义方法、基类成员在派生类中的访问属性、继承方式下构造函数和析构函数的执行顺序及构造规则、虚基类在解决二义性问题中的作用。 2.1 实验目的和要求 ...

    C语言程序设计 继承性和派生类PPT课件.pptx

    本资源为C语言程序设计的PPT课件,提供了详细的继承机制和派生类的知识点,包括继承机制的基本概念、单继承和多继承、派生类的继承方式、派生类的定义格式、基类与派生类的关系、基类成员在派生类中的访问权限等内容...

    4类的继承与派生继承与派生

    - **公有继承(public)**:基类的公共成员和保护成员在派生类中保持不变,是最常用的继承方式,用于公开所有功能。 ### 单继承与多继承 - **单继承**:是指派生类只继承一个基类。这种方式结构简单,易于理解和维护...

    C++继承与派生课件

    C++提供了三种继承方式,每种方式会影响派生类对基类成员的访问权限: - **公有继承(public)**:基类的公有和保护成员在派生类中仍保持原有的访问性,但私有成员不可直接访问。派生类的成员函数可以访问基类的...

    实验三 派生类的应用 (2).doc

    通过本实验,我们将掌握基类与派生类之间的关系、各种继承方式的应用及访问属性、派生类的构造函数和析构函数的使用,以及多重继承的方法。 一、实验目的 本实验的目的是让学生掌握派生类的应用,包括: 1. 掌握...

    继承和派生类PPT学习教案.pptx

    这样,我们可以通过继承来构建类的层次结构,每个派生类都可能成为其他类的基础,形成一个复杂的类继承网络。 2. **继承的特点**: - **代码复用**:继承使我们能够重用基类的代码,避免重复编写相同的逻辑。 - *...

Global site tag (gtag.js) - Google Analytics