
template<class T>
class A
{
public:
A()
A(T _a,T _b)
T sum()
private:
T a
T b
}
template <class T>
A<T>::A()
{
a=0b=0
}
template<class T>
A<T>::A(T _a,T _b)
{
a=_ab=_b
}
template<class T>
T A<T>::sum()
{
return (a+b)
}
void main()
{
A<int>ai(3,4)
A<double>ad(3.1,4.0)
cout<<ai.sum()<<" "<<ad.sum()<<endl
}
程序已经在vc6.0下调试通过,你自己看看吧。
以上代码在一个文件中,别把类的声明放在一个.h中把实现放在.cpp中,类模板不支持分离只能是类的声明和定义放在同一个文件中。
写的我好累,分给我吧#include<iostream.h>
#include<iomanip.h>
template <class T>
class Array
{
T *set
int n
public:
Array(T *data,int i){set=datan=i}
~Array(){}
void sort()// 排序
int seek(T key)// 查找指定的元素
T sum()// 求和
void disp()// 显示所有的元素
}
template<class T>
void Array<T>::sort()
{
int i,j
T temp
for(i=1i<ni++)
for(j=n-1j>=ij--)
if(set[j-1]>set[j])
{
temp=set[j-1]set[j-1]=set[j]set[j]=temp
}
}
template <class T>
int Array<T>::seek(T key)
{
int i
for(i=0i<ni++)
if(set==key)
return i
return -1
}
template<class T>
T Array<T>::sum()
{
T s=0int i
for(i=0i<ni++)
s+=set
return s
}
template<class T>
void Array<T>::disp()
{
int i
for(i=0i<ni++)
cout<<set<<
cout<<endl
}
void main()
{
int a[]={6,3,8,1,9,4,7,5,2}
double b[]={2.3,6.1,1.5,8.4,6.7,3.8}
Array<int>arr1(a,9)
Array<double>arr2(b,6)
cout<<arr1:<<endl
cout<<原序列:arr1.disp()
cout<<8在arr1中的位置:<<arr1.seek(8)<<endl
arr1.sort()
cout<<排序后:arr1.disp()
cout<<arr2:<<endl
cout<<原序列:arr2.disp()
cout<<8.4在arr2中的位置:<<arr2.seek(8.4)<<endl
arr2.sort()
cout<<排序后:arr2.disp()
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)