关闭

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

111人阅读 评论(0) 收藏 举报
分类:

在原有函数的条件下进行修改:

#include<iostream>
using namespace std;
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;
};
int main()
{
    
    return 0;
}

下面为修改的代码:

/*
*Copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称 :
*作 者 : 刘云
*完成日期 : 2016年5月31号
*版 本 号 : v6.0
*
*问题描述 : 两个成员的类模板
*输入描述 : 将此类声明改为类模板声明,使得数据成员data1和data2可以是任何类型。 
*程序输出 :
*/
#include<iostream>
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>obj;
    obj.SetData1(2);
    obj.SetData2(3.5);
    cout<<obj.GetData1()<<endl;
    cout<<obj.GetData2()<<endl;
    return 0;
}

运行结果:

心得:

一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员、默认成员函数的参数、某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的)。
如果一个类中数据成员的数据类型不能确定,或者是某个成员函数的参数或返回值的类型不能确定,就必须将此类声明为模板,它的存在不是代表一个具体的、实际的类,而是代表着一类类。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:27912次
    • 积分:1844
    • 等级:
    • 排名:千里之外
    • 原创:155篇
    • 转载:8篇
    • 译文:0篇
    • 评论:2条
    文章分类