问题及代码:
/*
*Copyright (c) 2015,烟台大学计算机学院
*All rights reserved.
*文件名称:text.cpp
*作者:徐健
*完成日期:2015年5月29日
*版本号:v1.0
*
*问题描述:(1)试将此类声明改为类模板声明,使得数据成员data1和data2可以是任何类型。
(2)请为该类增默认构造函数、带两个参数分别对应两个数据成员初值的构造函数,以及复制构造函数。
*输入描述: 无
*程序输出:声明为类模板后的函数输出结果
*/
#include <iostream>
using namespace std;
template<class T1,class T2>
class Test{
public:
Test(T1 val1,T2 val2):data1(val1),data2(val2){}
Test(){}
Test(Test<T1,T2>&t)
{
data1=t.data1;
data2=t.data2;
}
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;
};
int main()
{
Test<double ,int > t1(3.1,4);
t1.SetData1(3.1);
cout<<t1.GetData1()<<endl;
t1.SetData2(5);
cout<<t1.GetData2();
return 0;
}
运行结果: