码迷,mamicode.com
首页 > 其他好文 > 详细

类模板参数带默认值

时间:2018-07-10 20:12:06      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:name   使用   stl源码   类模板   ons   ==   span   ret   很多   

类模板参数可以带默认值吗?答案当然是肯定的。看过STL源码的人就知道,STL里面大量使用了模板技术。

有兴趣的可以去看看STL的源码,从中可以学到不少知识。

今天,我就写一个带默认值的类模板,如下:

#pragma once

template<typename T, typename T defValue = NULL>
class CType
{
public:
    CType()
        :m_value(defValue)
    {
    }
    ~CType()
    {
    }
    BOOL IsNull() const
    {
        return (defValue == m_value);
    }

private:
    T m_value;
};

使用起来也简单,如下:

CType<HANDLE, INVALID_HANDLE_VALUE> winHandle;
BOOL bNull = winHandle.IsNull();

CType<HANDLE> nHandle;
bNull = nHandle.IsNull();

CType<int*> intType;
bNull = intType.IsNull();

是不是很方便,不用去考虑很多细节。

类模板参数带默认值

标签:name   使用   stl源码   类模板   ons   ==   span   ret   很多   

原文地址:https://www.cnblogs.com/sooksjb/p/9290956.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!