有舍才有得

总得证明一下自己

第14周实践项目2(2)——两个成员的类模板
/*
*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、函数模板只是声明了一个函数的描述即模板,不是一个可以直接执行的函数,只有根据实际情况用实参的数据类型代替类型参数标识符之后,才能产生真正的函数。



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingmin52296358al/article/details/51547987
个人分类: 2016——c++作业
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭