实验目的:1.掌握派生类的声明方法和派生类构造函数的定义方法
2.掌握不同方式下,构造函数与析构函数的执行顺序与构造规则

运行结果:

结果很明显:基类的构造函数先运行,派生类的构造函数后运行
结束时,派生类的析构函数先运行,基类的析构函数后运行。

代码如下:
#include
#include
using namespace std;
class MyArray{
public:
MyArray(int length);
~MyArray();
void Input();
void Display(string);
protected:
int *alist;
int length;
};
MyArray::MyArray(int leng)
{
if(leng<=0)
{
cout<<“erro length”;
exit(1);
}
alist = new int [length];
length = leng;
if(alist==NULL)
{
cout<<“assign failure”;
exit(1);
}
cout<<“MyArray类对象已创建!”<<endl;
}
MyArray::~MyArray()
{
delete [] alist;
cout<<“MyArray类对象已撤销!”<<endl;
}
void MyArray::Display(string str)
{
int i;
int *p=alist;
cout<<str<<length<<“个整数:”;
for(int i=0;i<length;i++,p++)
{
cout<<*p<<" ";
}
cout<<endl;
}
void MyArray::Input()
{
cout<<“请从键盘输入”<<length<<“个整数:”;
int i;
int *p = alist;
for(int i=0;i<length;i++,p++)
{
cin>>*p;
}
}
class SortArray:public MyArray{
public:
void Sort();
SortArray(int length):MyArray(length) //派生类构造函数的定义
{
cout<<“SortArray类对象已创建!”<<endl;
}
~SortArray();
};
SortArray::~SortArray()
{
cout<<“SortArray()类对象已撤销!”<<endl;
}
void SortArray::Sort()
{
int i,j,temp;
for(int i=0;i<length-1;i++)
{
for(int j=0;j<length-i-1;j++)
{
if(alist[j]>alist[j+1])
{
temp=alist[j];
alist[j]=alist[j+1];
alist[j+1]=temp;
}
}
}
}
int main()
{
SortArray x(5);
x.Input();
x.Display(“排序前:”);
x.Sort();
x.Display(“排序后:”);
return 0;
}
心得:C++程序有很多有意思的地方,执行顺序的不同,定义的标准性使得程序更加健全,封装的更好。

6.继承下的构造函数域析构函数相关推荐

  1. 实验七:继承下的构造函数与析构函数

    一.实验目的: 二.实验内容: #include "twj.h"using namespace std;class MyArray { public:MyArray(int len ...

  2. 复合继承关系下的构造和析构

    继承关系下的构造和析构 看一下测试代码: /** @filename: Inheritance.cpp* @author: Tanswer* @date: 2018年01月31日 14:59:28* ...

  3. 5、继承与派生4-派生类的构造和析构函数

    派生类的构造函数只负责对派生类新增的成员进行初始化,对所有从基类继承下来成员,其初始化工作还是由基类的构造函数完成.同样,对派生类对象的扫尾.清理工作也需要加入新的析构函数. 1.构造函数 构造派生类 ...

  4. c++面向对象高级编程 学习十五 组合继承关系下的构造和析构

    文章目录 继承关系 组合关系 继承和组合 继承关系 构造由内而外,析构由外而内,内即是父类 组合关系 A拥有B, 构造由内而外,析构由外而内,内即是B 继承和组合 构造和析构顺序如图:

  5. c++继承中的构造和析构

    c++继承中的构造和析构 类型兼容性原则 类型兼容规则中所指的替代包括以下情况: 继承中的对象模型 继承中构造和析构 继承中的构造析构调用原则 继承与组合混搭情况下,构造和析构调用原则 继承中的同名成 ...

  6. 实验7-继承下的构造函数与析构函数

    实验目的 1.掌握派生类的声明方法和派生类构造函数的定义方法 2.掌握不同方式下,构造函数与析构函数的执行顺序与构造规则 一.派生类的构造函数与析构函数 派生类继承了基类的成员,实现原有代码的重用,但 ...

  7. C++继承中的构造与析构

    文章目录 1 C++继承中的构造 1.1 子类对象初始化父类成员的方式 1.2 子类对象的构造 2 C++继承中的析构 2.1 子类对象的析构 1 C++继承中的构造 1.1 子类对象初始化父类成员的 ...

  8. C++继承机制(二)——继承中的构造和析构顺序、继承同名成员的处理方式

    目录: C++继承机制(一)--基本语法.三种继承方式.继承哪些数据 C++继承机制(二)--继承中的构造和析构顺序.继承同名成员的处理方式 C++继承机制(三)--多继承.菱形继承.虚继承原理 本篇 ...

  9. C++:继承中的构造函数和析构函数

    C++:继承中的构造函数和析构函数 1.继承中构造函数和析构函数调用顺序 a.调用父类构造函数: b.调用其他成员的构造函数: c.调用子类构造函数: d.析构调用顺序相反. #include < ...

最新文章

  1. JAX-WS Web 服务开发调用和数据传输分析
  2. 【JavaSE】day03_Date、SimpleDateFormat、Calendar、Collection
  3. 麦肯锡季刊 | 人工智能的发展与障碍
  4. python第七章动手试一试_Python学习3
  5. Linux2.6内核--对块IO层操作的讨论
  6. 电脑内存和磁盘空间有什么区别与联系
  7. 詹金斯搭建_与詹金斯一起连续交付Heroku
  8. java中访问修饰符_Java中的访问修饰符介绍
  9. python tkinter 输入数字 小数_Python3 tkinter基础 Entry validate isdigit 只能输入数字的输入框...
  10. android 按钮顶级效果_Android 源码之button高亮效果
  11. Nginx反向代理与负载均衡等配置文件示例
  12. 三个变量中怎么找出中间值_scratch图形化编程基础练习-变量交换
  13. python_开发环境介绍_交互模式使用_IDE介绍和使用---python工作笔记010
  14. 声明类对象加括号与声明指针对象加括号的问题
  15. 创建Rss Feeds(一)
  16. Linux Web基础
  17. Java多线程系列---“JUC原子类”06之 AtomicLongFieldUpdater原子类
  18. QAliber - 介绍一款开源的GUI自动化测试工具
  19. 智慧景区管理系统提升游客服务体验
  20. Java面试题及答案整理(2022最新版)

热门文章

  1. 架构师之路(一) 什么是软件架构
  2. cairo-dock天气位置代码
  3. 人人网回归了!历史记录全保留!前任们的黑历史就要被重新翻开了
  4. 光耦w314的各引脚图_P184光耦电路作用,光电晶体管隔离24v输出电路
  5. 弹簧物理-如何模拟弹簧和阻尼
  6. saturn pcb toolkit相关功能界面介绍
  7. 侯捷C++视频资源全集 | 百度网盘下载
  8. 关于使用讯搜(xunsearch)过程中遇到的坑
  9. Robbins-Monro 随机逼近算法和序列学习(Sequential Learning)
  10. 普华i-VirtualCloud应用案例之--国家海洋局北海分局