问题 单项选择题

下列模板声明中,有语法错误的是( )。

A.template<typename T>T fun(T {return x;}

B.template<typename T>T fun(T x,int {return x*n;}

C.template<class T>T fun(T*{return *p;}

D.template<class T>T ClassA{T n;}

答案

参考答案:D

解析: 此题考查的是函数模板的声明。声明一个函数模板的格式为:template<模板形参表声明>函数声明,其中的<模板形参表声明>是由一个或多个“模板形参”组成的,每个“模板形参”可具有以下几种形式:typename参数名;class参数名;类型修饰参数名。而选项D)为定义类模板的格式,即template<类型形参表,class<类模板名>{};。

单项选择题
多项选择题