第十四周项目2-两个成员的类模板(2)

来源:互联网 发布:文章网站源码 编辑:程序博客网 时间:2024/04/30 00:13

问题及代码:

/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:zwj.cpp *作    者:张伟晶 *完成日期:2016年5月31日 *版 本 号:v1.0 * *问题描述:两个成员的类模板(2) *输入描述: *程序输出: */#include<iostream>using namespace std;template <typename T1,typename T2>class Test{public:    Test();    Test(T1 d1,T2 d2);    template <typename U,typename V>Test(Test<U,V>&t);    void SetData(T1 val ){data1=val;}    void SetData(T2 val){data2=val;}    T1 GetData1(){return data1;}    T2 GetData2(){return data2;}private:    T1 data1;    T2 data2;};template<typename T1,typename T2>Test<T1,T2>::Test(){}template<typename T1,typename T2>Test<T1,T2>::Test(T1 d1,T2 d2):data1(d1),data2(d2){}template<typename T1,typename T2>template<typename U,typename V>Test<T1,T2>::Test(Test< U, V> &t):   data1(t.data1),data2(t.data2){};int main(){    Test <int ,double >t1;    t1.SetData(2.5);    t1.SetData(3);    cout<<t1.GetData1()<<" "<<t1.GetData2()<<endl;    Test <string ,char>t2;    t2.SetData('*');    t2.SetData("heheda");    cout<<t2.GetData1()<<"    "<<t2.GetData2()<<endl;    Test<int ,double >t4(t1);    cout<<"________________________________"<<endl;    cout<<t4.GetData1()<<"    "<<t4.GetData2()<<endl;    return 0;}
运行结果:



0 0