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

15 查阅

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

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

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

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

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

参考答案:

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

计算机二级