第十四周实践项目2.1-两个成员的类模板

来源:互联网 发布:剑网3脸型数据清洗 编辑:程序博客网 时间:2024/05/18 19:37

问题及代码:

/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:77.cpp *作    者:董凯琦 *完成日期:2016年6月1日 *版 本 号:v1.0 * *问题描述:已知设有如下的类声明: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;试将此类声明改为类模板声明,使得数据成员data1和data2可以是任何类型。 *输入描述: *程序输出: */#include <iostream>#include <string>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>t1;    t1.SetData1(7);    t1.SetData2(8.6);    cout<<t1.GetData1()<<"   "<<t1.GetData2()<<endl;    Test <string,char> t2;    t2.SetData1("I like C++!");    t2.SetData2('q');    cout<<t2.GetData1()<<"   "<<t2.GetData2()<<endl;    return 0;}

运行结果:

知识点总结:

两个成员的类模板要将对应的类型分别改为T1,T2,在类之前要加上template <class T1,class T2>。注意不能写成template <class T1,T2>!

学习心得:

构建对象的时候要将对应的class T1,class T2改为想要的类型。


0 0
原创粉丝点击