问题 单项选择题

下列关于函数模板的定义中,合法的是( )。

A.template class <T>T abs(T z) {return z<0 -z:z;}

B.template<typename T>T abs(T z) {return z<0 -z:z;}

C.template T<class T>abs(T z) {return z<0 -z:z;}

D.template T abs(Tz) {return z<0 z:z;}

答案

参考答案:B

解析: 声明一个函数模板格式是: template<模板形参表声明><函数声明> 其中<模板形参表声明>是由一个或多个<模板形参>组成(如果是多个需要用逗号隔开)。其中,<模板形参>可以换成class,函数的声明部分和一般函数的声明部分类似,只有某些类型修饰符被虚拟类型参数替代。

选择题
问答题 简答题