问题 单项选择题

关于关键字class和typename,下列表述中正确的是【 】

A.程序中的typename都可以替换为class

B.程序中的class都可以替换为typename

C.在模板形参表中只能用typename来声明参数的类型

D.在模板形参表中只能用class或typename来声明参数的类型

答案

参考答案:A

解析:声明一个函数模板的格式是:template模板形参表声明><函数声明:其中模板形参表声明是由一个或多个模板形参组成的(如果是多个,需要用逗号隔开)。每个模板形参具有下面几种形式:①typename<参数名> ②class<参数名>③类型修饰<参数名>这里的参数名可以是任意的标识符。在这3种形式中,前两种是等价的,在声明模板参数时,关键字typename与class可以互换。用typename或class声明的参数称为虚拟类型参数;而用类型修饰声明的参数则称为常规参数,在形式上与普通的函数参数声明相同。

单项选择题
单项选择题