类模板参数带默认值
Posted sooksjb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类模板参数带默认值相关的知识,希望对你有一定的参考价值。
类模板参数可以带默认值吗?答案当然是肯定的。看过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();
是不是很方便,不用去考虑很多细节。
以上是关于类模板参数带默认值的主要内容,如果未能解决你的问题,请参考以下文章