派生类的构成

2024-04-07 12:32
文章标签 构成 派生类

本文主要是介绍派生类的构成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

派生类得构成
派生类的成员包括从基类继承过来的成员和自己增加的成员两大部分。从基类继承的成员体现了派生类从基类继承而获得的共性,而新加的成员体现了派生类的个性。正是这些新增加的成员体现了派生类与基类的不同,也体现了不同派生类的区别  
实际上,并不是把基类的成员和派生类自己增加的成员简单的加在一起就成为派生类。构造一个派生类包括以下三个部分:
1)从基类接受成员。

派生类把基类全部的成员(不包括构造函数和析构函数)接受过来,也就是说没有选择的,不能选择接受一部分成员,舍弃一部分成员。
2)调整从基类接受的成员。

接收基类成员是程序人员不能选择的,但是程序人员可以对这些成员做某些调整。例如可以改变基类成员在派生类中的访问属性,这是通过指定继承的方式来实现的。如可以通过继承把基类的公用成员指定为派生类中的访问属性为私有(即在派生类外无法访问)。此外,可以在派生类中声明一个与基类成员同名的成员,则派生中的新成员回覆盖基类的同名成员,但要注意:如果是成员函数,不仅应使函数名相同,而且函数的参数的个数和类型也相同,如果不相同,就成为函数的重载而不是覆盖,用这种方法可以用新成员取代基类成员。
3)在声明派生类时增加的成员。

它体现了派生类对基类的扩展。
此外,在声明派生类时,一般还应当自己定义派生类的构造函数和析构函数,因为构造函数和析构函数不能从基类继承。因此可以看出派生类是基类定义的延续,即派生类是基类的具体实现。
 

对于有子对象的派生类的构造函数

一个简单的例子:

<span style="font-size:14px;"><strong>#include<iostream>
#include<string>
using namespace std;
class Student
{
public:Student(int n, string m){num=n;name=m;}void display(){cout<<"num:"<<num<<endl<<"name:"<<name<<endl;}
protected:int num;string name;
};
class Student1:public Student
{
public:Student1(int n, string m,int x, string  y,int a, string add ):Student(n, m),monitor(x, y){age=a;addr=add;}void show(){cout<<"the student is:"<<endl;display();cout<<"age:"<<age<<endl;cout<<"addr:"<<addr<<endl;}void monitor_show(){cout<<endl<<"the class monitor is:"<<endl;monitor.display();}
private:Student monitor;int age;string addr;
};
int main()
{Student1 stud1(12313,"LiHua",10223,"SDf",19,"ASDFefsa ASDFas");stud1.show();stud1.monitor_show();return 0;
}</strong></span>
运行结果:



这篇关于派生类的构成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/882596

相关文章

计算机网络:URL构成

计算机网络:URL构成 一、本文内容与前置知识点1. 本文内容 二、URL基本构成1. 协议2. 主机3. 端口4. 路径 四、参考文献 一、本文内容与前置知识点 1. 本文内容 URL构成说明。 二、URL基本构成 参考《计算机网络》6.4.2统一资源配置符URL p723 <协议>://<主机>:<端口>/<路径> 1. 协议 顾名思义,也就是协议名称,现在

用户体验设计视觉元素构成

一般来说,网站的视觉元素主要有文字、图片、表单和按钮四大类,还包括标签,列表,多媒体等等,这些都是网站外观设计的组成部分,服从于网站的整体风格需要。用好网站视觉元素,能更好的指导和协助用户完成网站上的任务流程,使用户获得良好的在线体验。 让文字易辨识 字体是帮助用户获得与网站的信息交互的重要手段,因而文字的易读性和易辨认性是设计网站页面时的重点。不同的字体会营造出不同的氛围,同时不

生物信息学:DNA序列的构成

DNA序列是由一串字母表示的真实的或者假设的携带基因信息的DNA分子的一级结构。‌ DNA序列的构成基于四种特定的碱基,分别是腺嘌呤(A)、胸腺嘧啶(T)、鸟嘌呤(G)和胞嘧啶(C)。这些碱基以特定的配对方式形成碱基对,即A与T配对,C与G配对,这是基于它们之间的氢键相互作用。每个碱基代表一个特定的遗传信息,通过这些碱基的排列顺序,DNA序列能够编码遗传信息,进而指导生物体的生长、发育和功能。

50ETF期权合约要素有哪些?50ETF期权合约组成构成分享

今天带你了解50ETF期权合约要素有哪些?50ETF期权合约组成构成分享。50ETF期权的买方有权利选择交易还是放弃交易,期权的行权日要在这天之前确定。如果你没有及时的进行平仓,那么你的合约价值就会归零。 50ETF期权合约 50ETF期权合约是基于上证50ETF的标准化期权合约,交易在中国的上海证券交易所。这些期权合约包含了几个关键要素,如下所述: 1.标的资产:50ETF,即追踪上证50

C++源程序的文件构成

C++源程序的文件有两部分构成:*.h文件和*.cpp文件 *.h文件(头文件):主要存放宏定义声明,变量声明,全局变量声明等 *.cpp文件:是正式的源程序文件

HDU3836Equivalent Sets(强连通+加边构成强连通)

题意:至少加几条边构成强连通, 和上一题一样 #include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>#include<string>#include<cstring>#include<stack>#include<queue>#include

要求输出1~n*n的自然数构成的魔方阵。(n15且为奇数)

【描述】 输出"魔方阵"。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如,三阶魔方阵为       8 1 6       3 5 7       4 9 2 要求输出1~n*n的自然数构成的魔方阵。(n<15且为奇数) 【解题思路】 (1)第一个位置在第一行正中。 (2)新位置应处于 最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置应选 列的最下

C++笔记之在基类和派生类之间进行类型转换的所有方法

C++笔记之在基类和派生类之间进行类型转换的所有方法 code review! 文章目录 C++笔记之在基类和派生类之间进行类型转换的所有方法1.dynamic_cast和std::static_pointer_cast在基类和派生类之间的转换使用场景下的区别1.1.`dynamic_cast`1.2.`std::static_pointer_cast`1.3.总结 2.dynamic_c

储能系统的成本构成有哪些

储能系统的成本构成主要包括建设成本、充电成本、运营人工成本、运行维护成本、储能用途的厂用电成本以及更换储能电池与设备成本。以下是详细介绍: 储能系统的成本构成 建设成本:包括设备安装成本(含电池成本)和施工建造成本。充电成本:充电过程中发生的全部费用,主要取决于能量转化效率。运营人工成本:包括固定的人工成本和可变的人工成本,与存储使用的频率和持续时间成正比。运行维护成本:为了维持储能电站处于良

C#下在派生类中引发基类事件的方法与示例

文章目录 基类事件在派生类中的定义及触发方式基类事件的传播机制示例总结 在面向对象编程中,继承是代码复用的一种重要方式。C#作为一种面向对象的编程语言,允许派生类继承基类的属性和方法。基类定义了一系列共有的属性和行为,而派生类则可以在基类的基础上添加新的特性或重写基类的方法。事件作为一种特殊的成员,也可以在基类中被定义,并在派生类中被触发和使用。 基类事件在派生类中