c++类模板

如果要比较两个数的大小,比如要比较两个整型数的大小

可以这样写个类:

class Compare_int
{
        public:
                Compare_int(int arg1, int arg2):number1(arg1),number2(arg2){}
                int max()
                {
                        if (number1 > number2)
                                return number1;
                        else
                                return number2;
                }
        private:
                int     number1;
                int     number2;
};

如果要比较两个数是浮点数,就得这样写一个类:

class Compare_float
{
        public:
                Compare_float:(float arg1, float arg2):number1(arg1),number2(arg2){}
                float max()
                {
                        if (number1 > number2)
                                return number1;
                        else
                                return number2;
                }
        private:
                float   number1;
                float   number2;
};

如果是double类型的呢?然后又要写一个类似于上面的double类型的类。这样是不是很麻烦?

麻烦总有解决办法,这个解决办法就是类模板。

有两个或多个类,其功能是相同的,仅仅是数据类型不同,就可以用类模板来解决问题。

template<class type>
class Compare
{
        public:
                Compare:(type arg1, type arg2):number1(arg1),number2(arg2){}
                type max();
        private:
                type    number1;
                type    number2;
};
/***注意,以下的函数定义是不对的*/
type Compare::max()
{
        //内容
}
/***************************/
/****正确的定义*********/
template <class type>
type Compare <type>::max()
{
        return (number1 > number2) ? number1 : number2;
}

/*然后是如何定义一个类模板的对象*/
/*类模板是这样定义对象的*/
Compare <类型> 对象名(初始化的值);
/*比如定义一个int形的对象*/
Compare <int> compare(5, 10);
/*如果是float形的*/
Cpmpare <float> compare(5.1f, 18.6f);





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值