问题
单项选择题
下列模板声明中,有语法错误的是( )。
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<类模板名>{};。