问题
单项选择题
下列关于函数模板的定义中,合法的是( )。
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,函数的声明部分和一般函数的声明部分类似,只有某些类型修饰符被虚拟类型参数替代。