求个C++类模板的简单程序

求个C++类模板的简单程序,第1张

我发个简单的类模板程序(求两个任意类型数的和)。

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()

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12035551.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存