C++程序如下通过类模板,实现向一个整型序列中添加 5 个整数并显示,也可以向一个字符序列中添加 5 个字符并显示,具 体要求如下: 1、创建一个包含泛型 T 的类模板 Xulie,类中包含成员 (1) T 类型的指针 a,用来指向一组空间,存储序列中的元素 (2) 整型变量 i,用来控制序列中的下标 (3) 默认构造函数,为指针 a 分配一组连续在一起的 5 个内存空间,为变量 i 初始化为 0 (4) 成员函数 add(),包含一个 T 类型的形参,调用一次,可以将形参的值添加到 a 指向的空间中,利用变 量 i 控制下标 (5) 成员函数 show(),将 a 指向的空间中的 5 个元素输出出来,每个元素之间使用空格间隔 2、main(): (1) 创建一个可以存储整数的序列,通过控制台输入 5 个整数,依次添加到序列中,显示出来这 5 个整数 的值 (2) 创建一个可以存储字符的序列,通过控制台输入 5 个字符数据,依次添加到序列中,显示出来这 5 个 字符
时间: 2023-03-19 16:22:12 浏览: 140
以下是实现要求的 C++ 程序,通过类模板 Xulie,实现向一个整型序列或字符序列中添加 5 个元素并显示出来:
```cpp
#include <iostream>
using namespace std;
// 定义类模板 Xulie
template <typename T>
class Xulie {
private:
T *a; // 存储序列中的元素
int i; // 控制序列中的下标
public:
// 默认构造函数,为指针 a 分配一组连续在一起的 5 个内存空间,
// 为变量 i 初始化为 0
Xulie() {
a = new T[5];
i = 0;
}
// 成员函数 add(),包含一个 T 类型的形参,调用一次,
// 可以将形参的值添加到 a 指向的空间中,利用变量 i 控制下标
void add(T t) {
if (i < 5) {
a[i] = t;
i++;
}
}
// 成员函数 show(),将 a 指向的空间中的 5 个元素输出出来,
// 每个元素之间使用空格间隔
void show() {
for (int j = 0; j < 5; j++) {
cout << a[j] << " ";
}
cout << endl;
}
// 析构函数,释放 a 指向的内存空间
~Xulie() {
delete[] a;
}
};
int main() {
// 创建一个可以存储整数的序列
Xulie<int> intSeq;
// 通过控制台输入 5 个整数,依次添加到序列中
int x;
for (int i = 0; i < 5; i++) {
cin >> x;
intSeq.add(x);
}
// 显示出这 5 个整数的值
intSeq.show();
// 创建一个可以存储字符的序列
Xulie<char> charSeq;
// 通过控制台输入 5 个字符数据,依次添加到序列中
char c;
for (int i = 0; i < 5; i++) {
cin >> c;
charSeq.add(c);
}
// 显示出这 5 个字符的值
charSeq.show();
return 0;
}
```
在程序运行时,会先创建一个可以存储整数的序列,通过控制台输入 5 个整数,依次添加到序列中,然后显示出这 5 个整数的值;接着创建一个可以存储字符的序列,通过控制台输入 5 个字符数据,依次添加到序列中,最后显示出这 5 个字符的值。
阅读全文