第14周项目二——两个成员函数的类模板(2)

/* 
烟台大学计算机学院 
 
*文件名称:test.cpp 
*作者:李亚辉
*完成日期:2016年6月24日 
*版本号:vc++6.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; 
} 
(1)试将此类声明改为类模板声明,使得数据成员data1和data2可以是任何类型。 
(2)请为该类增默认构造函数、带两个参数分别对应两个数据成员初值的构造函数,以及复制构造函数。 
 
*输入描述: 
*程序输出: 
*/  
#include <iostream>  
#include <string>  
using namespace std;  
template <class T1,class T2>  
class Test  
{  
public:  
    Test(T1 d1, T2 d2):data1(d1),data2(d2) {}  
    template <class U,class V> Test(const Test<U,V> &t);  
    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;  
};  
  
  
template <class T1,class T2>  
template <class U,class V>  
Test<T1, T2>::Test(const Test<U,V> &t)  
{  
   data1=t.data1;  
   data2=t.data2;  
}  
  
  
int main()  
{  
    Test <int,double> t1(10, 5.4);  
    cout<<t1.GetData1()<<"   "<<t1.GetData2()<<endl;  
    Test <int,double> t2(t1);  
    cout<<t2.GetData1()<<"   "<<t2.GetData2()<<endl;  
    return 0;  
}  
/*学习心得:复制构造函数类比声明的是两个对象,这点很重要。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值