第14周实践项目2(2)——两个成员的类模板

来源:互联网 发布:阿里云免费版商务礼包 编辑:程序博客网 时间:2024/05/21 06:57
/**Copyright (c) 2016,烟台大学计算机学院*All rights reserved.*文件名称 :*作 者 : 刘云*完成日期 : 2016年5月31号*版 本 号 : v6.0**问题描述 : 两个成员的类模板*输入描述 :增默认构造函数、带两个参数分别对应两个数据成员初值的构造函数,以及复制构造函数*程序输出 :*/#include<iostream>using namespace std;template<class T1,class T2>class Test{public:    Test(T1 val1=0,T2 val2=0):Data1(val1),Data2(val2){} //构造函数    Test(Test &t1)  //复制构造函数    {       Data1=t1.Data1;       Data2=t1.Data2;    }    void SetData1(T1 val){ Data1=val; }    void SetData2(T2 val){ Data2=val; }    void show()    {        cout<<"第一个数据为:"<<Data1<<endl;        cout<<"第二个数据为:"<<Data2<<endl;        cout<<'\n'<<'\n';    }    T1 GetData1(){return Data1;}    T2 GetData2(){return Data2;}private:    T1 Data1;    T2 Data2;};int main(){    Test<int,double>obj(4,3.6),obj1(obj);    obj.show();    obj1.show();    obj.SetData1(2);    obj.show();    obj.SetData2(3.5);    obj.show();    cout<<obj.GetData1()<<endl;    cout<<obj.GetData2()<<endl;    return 0;}

运行结果:

心得:

1、,template是定义模板函数的关键字;template后面的尖括号不能省略;typename(或class)是声明数据类型参数标识符的关键字,用以说明它后面的标识符是数据类型标识符。这样,在以后定义的这个函数中,凡希望根据实参数据类型来确定数据类型的变量,都可以用数据类型参数标识符来说明,从而使这个变量可以适应不同的数据类型。

2、函数模板只是声明了一个函数的描述即模板,不是一个可以直接执行的函数,只有根据实际情况用实参的数据类型代替类型参数标识符之后,才能产生真正的函数。



1 0
原创粉丝点击