栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

济南大学自动化学院C++上机

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

济南大学自动化学院C++上机

实验目的

1.掌握派生类的声明方法和派生类构造函数的定义方式

2.掌握不同方式下,构造函数与析构函数的执行顺序与构造规则

#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 << "error length";
		exit(1);
	}
	length = leng;
	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 (i = 0; i < length; i++, p++)
	{
		cout << *p << " ";
	}
	cout << endl;
}
void MyArray::Input()
{
	cout << "请从键盘输入" << length << "个整数:";
	int i;
	int* p = alist;
	for (i = 0; i < length; i++, p++)
	{
		cin >> *p;
	}
}
int main()
{
	MyArray a(5);
	a.Input();
	a.Display("显示排序以前的");
	return 0;
}

运行结果如下:

  声明一个SortArray继承类MyArray,在该类中定义一个函数,具有将输入的整数从小到大进行排序的功能。

派生类的构造函数

派生类构造函数的一般格式为:

派生类名(参数总表):基类名(参数表),

{

派生类新增数据成员的初始化语句;

}

class SortArray :public MyArray 
{
public:
	SortArray(int leng) :MyArray(leng)
    {
	cout << "SortArray类对象已创建!" << endl;
	}
	~SortArray()
	{
		cout << "SortArray类对象已销毁!" << endl;
	}
	void sort()//冒泡法排序
	{
		int i,j,temp;
		int *p = alist;
		for (i = 0; i < length; i++)
		{
			for (j =i;j < length; j++)
			{
				if (*(p + i) > *(p+j))
				{
					temp = *(p + i);
					*(p + i) = *(p+j);
					*(p+j) = temp;
				}
			}
		}
	}
};

代码运行如下:

 可以看出基类和派生类的构造函数与析构函数的顺序为:

创建派生类对象时

1.执行基类的构造函数

2.执行派生类的构造函数

撤销派生类对象时

1.执行派生类的析构函数

2.执行基类的析构函数

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656407.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号