第十四周项目2.2—两个成员的类模板

来源:互联网 发布:欧卡2a卡优化 编辑:程序博客网 时间:2024/06/05 16:40
/**Copyright(c) 2016.烟台大学计算机与控制工程学院*ALL rights  reserved.*文件名称:test.cpp*作者:杨驰*完成日期:2016年5月31*问题描述:将此类声明改为类模板声明,使得数据成员data1和data2可以是任何类型。增默认构造函数、          带两个参数分别对应两个数据成员初值的构造函数,以及复制构造函数。*/#include <iostream>using namespace std;template <class T1,class T2>class  Test{public:  Test();//默认构造函数  Test(T1 a,T2 b);//初始化的构造函数  Test(const Test<T1,T2>&t);//复制构造函数  void SetData1(T1 val) { data1=val; }  void SetData2(T2 val) {data2=val;}  T1 GetData1()  { return data1; }  T2 GetData2() { return data2; }private:  T1  data1;  T2  data2;};template <class T1,class T2>Test<T1,T2>::Test(){}template <class T1,class T2>Test<T1,T2>::Test(T1 a,T2 b):data1(a),data2(b){}template <class T1,class T2>Test<T1,T2>::Test(const Test<T1,T2>&t):data1(t.data1),data2(t.data2){}int main(){    Test<int,double>t1;    t1.SetData1(2);    t1.SetData2(10.2);    cout<<t1.GetData1()<<"   "<<t1.GetData2()<<endl;    Test<char,string>t2;    t2.SetData1('y');    t2.SetData2("yang!");    cout<<t2.GetData1()<<"   "<<t2.GetData2()<<endl;    return 0;}

运行结果:


0 0