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