关于C++中类模板的问题

2024-12-06 20:29:04
推荐回答(1个)
回答(1):

类模板根本不是这样写的 给你一个例子
/*1) 设计1个动态数组类模板。在构造函数中,为数组分配存储空间(new操作符),
在析构函数中释放内存。类模板中提供排序,求最大值、最小值和平均值的功能。*/

#include
#include //这里包含algorithm的目的是为了能调用std:sort
using namespace std;
template
class Array//数组类
{
private:
T *a;//数组
int size;//数组的大小
public:
Array(int size)//构造函数
{
a = new T[size];//开辟新内存
cout<<"请输入"< for(int i=0;i cin>>a[i];
this->size=size;
}
~Array()//析构函数
{
delete[] a;
}
T Max()//求最大值
{
T max=a[0];
for(int i=0;i {
if(max max=a[i];
}
return max;
}
T Min()//最小值
{
T min=a[0];
for(int i=0;i {
if(min>a[i])
min=a[i];
}
return min;
}
T Average()//平均值
{
T sum =T();
// cout< for(int i=0;i {
sum+=a[i];
}
return sum/size;
}
void show()//
{
for(int i=0;i {
cout< }
cout< }
void Sort()
{
std::sort(&a[0],&a[size]);
}
};

int main()
{
ArrayA(5);//int 类
A.show();
cout<<"A.Max = "< cout<<"A.Min = "< cout<<"A.Average = "< A.Sort();
A.show();

ArrayB(5);//char 类
B.show();
cout<<"B.Max = "< cout<<"B.Min = "< cout<<"B.Average = "< B.Sort();
B.show();
return 0;
}