我是C ++的新手,我很难理解这段代码:
template <typename T = unsigned>
T = unsigned
是什么意思?unsigned
?答案 0 :(得分:6)
这是默认的模板参数;它类似于默认的函数参数。如果您没有参与论证,则默认为unsigned [int]
。想象一下:
template <typename T = unsigned>
struct foo
{
T one;
T two;
};
如果我声明例如foo<char>
,则生成的结构将包含两个char
成员。但是默认参数允许我声明foo<>
,而 结构将有两个unsigned int
成员,因为unsigned int
是默认值。
答案 1 :(得分:1)
模板具有T
类型的默认参数,在本例中为unsigned int
。
unsigned
是unsigned int
的简写。
例如;在客户端代码中,如果模板是类模板,则可以声明对象,无论是否向声明显式添加类型;
ABC<> abc1; // the <> is required
ABC<unsigned int> abc2; // equivalent type to abc1
ABC<float> abc3;