在原有函数的条件下进行修改:
#include<iostream>
using namespace std;
class Test
{
public:
void SetData1(int val){ data1=val; }
void SetData2(double val){ data2=val; }
int GetData1(){return Data1;}
double GetData2(){return Data2;}
private:
int Data1;
double Data2;
};
int main()
{
return 0;
}
下面为修改的代码:
/*
*Copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称 :
*作 者 : 刘云
*完成日期 : 2016年5月31号
*版 本 号 : v6.0
*
*问题描述 : 两个成员的类模板
*输入描述 : 将此类声明改为类模板声明,使得数据成员data1和data2可以是任何类型。
*程序输出 :
*/
#include<iostream>
using namespace std;
template<class T1,class T2>
class Test
{
public:
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<int,double>obj;
obj.SetData1(2);
obj.SetData2(3.5);
cout<<obj.GetData1()<<endl;
cout<<obj.GetData2()<<endl;
return 0;
}
运行结果:
心得:
一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员、默认成员函数的参数、某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的)。
如果一个类中数据成员的数据类型不能确定,或者是某个成员函数的参数或返回值的类型不能确定,就必须将此类声明为模板,它的存在不是代表一个具体的、实际的类,而是代表着一类类。