用C++写【问题描述】定义一个基类MyArray,类中可以存放一组整数。 基类中有构造函数(包含提示语句Myarray initialize!)、析构函数(包含提示语句Bye, Myarray!)、输入数据函数:V oid inputo和输出数据函数:void Display0。由MyArray派生一个类SortArray,该类中有构造函数(包含提示语句SortArray initialize!)、析构函数(包含提示语句Bye, SortArray)、实现排序(由大到小) 功能的成员函数:void sort0。 【输入形式】按照系统提示,输入数组的长度以及数组的各元素的值。 【输出形式】输出排序前的数组和经过排序后的数组。 【样例输入】 6 -13 2387 90 -4 987 19 【样例输出】 Please enter the length of the array: Myarray initialize! SortArray initialize!
时间: 2024-03-23 22:42:46 浏览: 48
好的,这是一个 C++ 编程问题,我会尽力回答。以下是基类 MyArray 和派生类 SortArray 的实现代码:
```
#include <iostream>
#include <algorithm>
using namespace std;
class MyArray {
protected:
int* data;
int size;
public:
MyArray() {
cout << "Myarray initialize!" << endl;
size = 0;
data = nullptr;
}
~MyArray() {
cout << "Bye, Myarray!" << endl;
if (data != nullptr) {
delete[] data;
data = nullptr;
size = 0;
}
}
void input() {
cout << "Please enter the length of the array: ";
cin >> size;
data = new int[size];
cout << "Please enter the elements of the array: ";
for (int i = 0; i < size; i++) {
cin >> data[i];
}
}
void display() {
cout << "The array is: ";
for (int i = 0; i < size; i++) {
cout << data[i] << " ";
}
cout << endl;
}
};
class SortArray: public MyArray {
public:
SortArray() {
cout << "SortArray initialize!" << endl;
}
~SortArray() {
cout << "Bye, SortArray!" << endl;
}
void sort() {
sort(data, data + size, greater<int>());
}
};
int main() {
SortArray arr;
arr.input();
arr.display();
arr.sort();
arr.display();
return 0;
}
```
在这个代码中,我们定义了一个基类 MyArray 和一个派生类 SortArray。MyArray 类中有一个 data 指针和一个 size 变量,分别用于存储整数数组和数组长度。MyArray 类中有三个函数:构造函数、析构函数、输入数据函数 input 和输出数据函数 display。输入数据函数 input 会提示用户输入数组长度和数组元素,然后动态分配数组空间,并将用户输入的元素存储到数组中。输出数据函数 display 会输出数组中的所有元素。
SortArray 类继承自 MyArray 类,并添加了一个排序函数 sort。这个函数使用 STL 中的 sort 算法,按从大到小的顺序对数组进行排序。
在主函数中,我们创建了一个 SortArray 类型的对象 arr,并先调用 input 函数输入数组数据,然后调用 display 函数输出排序前的数组,最后调用 sort 函数对数组进行排序,并再次调用 display 函数输出排序后的数组。
如果你有任何疑问,都可以问我。
阅读全文