/*用模版类实现一个万能数组,数组类型可以任意给定,数组大小可以任意给定*/
/*
函数调用 typeid(变量).name() 获取变量的类型名
*/
#include <iostream>
using namespace std;
//模版类定义,一个是虚拟类型T,用来给定数组元素的类型,一个是整型值size,用来给定数组的大小,即元素个数
//此类是一个万能数组,数组类型可以任意给定,数组大小可任意给定
//模板类不仅可以传递类型T,也可以传递数值size
template <class T,int size>
class Array
{
public:
Array()
{
int i;
cout<<"请输如"<<size<<"个"<<typeid(T).name()<<"值,对数组成员赋值:"<<endl;
for(i=0;i<size;i++) //对数组元素值进行输入
cin>>array[i];
}
void display()
{
int i;
cout<<"输出"<<size<<"数组成员值:"<<endl;
for(i=0;i<size;i++) //对数组元素值进行输出
cout<<array[i]<<" ";
cout<<endl;
}
private:
T array[size];
};
int main()
{
Array<int,5> array_int; //给出模板的参数化值,使其生成具体类,然后定义类对象
//当前数组类中数组元素类型为int,数组大小为5
array_int.display();
Array<char,3> array_char; //给出模板的参数化值,使其生成具体类,然后定义类对象
//当前数组类中数组元素类型为char,数组大小为3
array_char.display();
Array<float,4> array_float; //给出模板的参数化值,使其生成具体类,然后定义类对象
//当前数组类中数组元素类型为int,数组大小为5
array_float.display();
return 0;
}
补充函数
函数调用 typeid(变量).name() 获取变量的类型名
上例对应的UML类图如下所示。
补充函数
函数调用 typeid(变量).name() 获取变量的类型名