the template has parameter, it can contains type paramter and it can also have nontype paramter, in the following code.
template <class Type, int size>
class Buffer;
the class template buffer has two paramter, one is the non-determinic parameter, which is Type, and one nontype (which means the type itself is bound and known, which remains unknown is only the vlaue of the nontype parameter).
As for the function parameter, you can also provide default value for template class, for the type paramter, the default value is type, while for the non-type parameter, the default value is value.
Let's see the example below.
/**
* file:
* default_template_parameters.h
*
* description:
* this file shows that you can provide default paramter value for either the type parameter or the nontype parameter
*/
#include<string>
using std::string;
template <class Type, int size = 1024>
class Buffer;
template <class Type = string, int size /* you don't need to provide "= 1024" */>
class Buffer;
//template <class Type = string, int size = 1024>
//class Buffer;
template <class Type, int size>
class Buffer
{
public:
Buffer() : _size(size) {}
private:
Type elem;
int _size;
protected:
};
本文深入探讨了C++模板中的参数使用,包括类型参数和非类型参数的功能与区别,并通过示例展示了如何为模板类提供默认参数值。
129

被折叠的 条评论
为什么被折叠?



