设为首页 加入收藏

TOP

C++类模板实例说明(一)
2018-05-21 15:48:13 】 浏览:259
Tags:模板 实例 说明

一、类模板(template)

类模板是后期C++加入的一种可以大大提高编程效率的方法

关键字template

用法:

template <模板参数表>   ----->模板参数表一般格式为class (标识符)

class (类名)

{

     //....

}

二、举个栗子

我们要写一个比较类,类里面有两个私有成员

在类里有求私有成员中的最大值和最小值的两个公有成员

用来判断两个数的大小

下面我们来进行有无类模板的比较

(1)不用类模板

代码块:

[cpp] view plain copy

class Compare  

{  

    public:  

        Compare(int a,int b)//构造函数,用于初始化  

        {  

            x = a;  

            y = b;  

        }  

        int max()//求较大值  

        {  

            return (x>y)?x:y;  

        }  

        int min()//求较小值  

        {  

            return (x<y)?x:y;  

        }  

    private:  

        int x;  

        int y;    

};  

分析:

我们会发现,这个类只能用于比较整形的大小

比如3,5;调用max返回5,调用min返回3

但是如果比较的是浮点数,那就不可以了

(2)用类模板

代码块:

[cpp] view plain copy

template <class Type>  

class compare  

{  

    public:  

        compare(Type a,Type b)  

        {  

            x = a;  

            y = b;  

        }  

        Type max()  

        {  

            return (x>y)?x:y;  

        }  

        Type min()  

        {  

            return (x<y)?x:y;  

        }  

    private:  

        Type x;  

        Type y;  

};  

分析:

通过对比发现,这两块代码差别并不是很大,仅仅是增加了关键字

还有类型Type替换之前的整型int

在main函数定义时,就可以定义不同类型的对象了

main函数代码:

[cpp] view plain copy

int main(void)  

{     

    compare<int> C1(3,5);  

    cout<<"最大值:"<<C1.max()<<endl;  

    cout<<"最小值:"<<C1.min()<<endl;  

      

    compare<float> C2(3.5,3.6);  

    cout<<"最大值:"<<C2.max()<<endl;  

    cout<<"最小值:"<<C2.min()<<endl;  

      

    compare<char> C3('a','d');  

    cout<<"最大值:"<<C3.max()<<endl;  

    cout<<"最小值:"<<C3.min()<<endl;  

    return 0;  

}  

三、如何写一个

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++ 的接雨水问题及题解分析 下一篇C++11 基于范围的for循环讲解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目