计算机二级

有如下模板声明:templateclass A;下列声明中,与上述声明不等价的是A.t有如下模板声明: template<typename T1,typename T2>class A; 下列声明中,与上述声明不等价的是A.template<class T1,class T2>class A;B.template<class T1,typename T2>class A;C.template<typename T1,class T2>class A;D.template<typename T1,T2>cl

题目
有如下模板声明:templateclass A;下列声明中,与上述声明不等价的是A.t

有如下模板声明: template<typename T1,typename T2>class A; 下列声明中,与上述声明不等价的是

A.template<class T1,class T2>class A;

B.template<class T1,typename T2>class A;

C.template<typename T1,class T2>class A;

D.template<typename T1,T2>class A;

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有如下模板声明: templateclassA; 下列声明中,与上述声明不等价的是( )。

A.templateclassA;

B.templateclassAt

C.templateclassA;

D.templateclassA;


正确答案:D
D。【解析】模板形参有typename<参数名>、class<参数名>、<类型修饰><参数名>3种形式,即typename与class通用。

第2题:

下列关于模板的叙述中,错误的是

A.调用模板函数时,在一定条件下可以省略模板实参

B.可以用int、double这样的类型修饰符来声明模板参数

C.模板声明中的关键字class都可以用关键字typename替代

D.模板的形参表中可以有多个参数


正确答案:C
解析:在有typename的地方可以用class来代替,但是在有class的地方不一定能用typename代替,如:
  Templaeclass类型参数>class类名{ }后面的那个class是不能用typename代替的。

第3题:

关于关键字class和typename,下列表述中正确的是( )。 A. 程序中的typename都可以替换为classS

关于关键字class和typename,下列表述中正确的是( )。

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

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

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

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


正确答案:A
程序中的typename都可以替换为class,但程序中的class不可以全部替换为typename。在模板类型形参中除了typename和class以外,也可以用常规类型来声明参数的类型,所以C、D选项错误。

第4题:

有如下模板声明:

template<typename T1,typename 12>class A;

下列声明中,与上述声明不等价的是

A.template<class T1,class T2>class A;

B.template<class T1,typename T2>class A;

C.template<typename TI,class T2>class A;

D.template<typename T1,T2>class A;


正确答案:D
解析:定义函数模板时可以使用多个类型参数,这时每个类型参数前面都要加上关键字class或typename,其间用逗号分隔。

第5题:

关于关键字class和typename,下列表述中正确的是( )。

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

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

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

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


正确答案:A
解析:在模板中,定义模板类型templateclassT>和templatetypenameT>都是一样的,有时用class容易引起混淆,所以在标准化时引入了关键字typename。

第6题:

下列关于模板的叙述中,错误的是( )。

A.调用模板函数时,在一定条件下可以省略模板实参

B.可以用int、double这样的类型修饰符来声明模板参数

C.模板声明中的关键字class都可以用关键字typename替代

D.模板的形参表中可以有多个参数


正确答案:C
解析:此题考查的是模板的概念。模板的一般说明形式如下: template类型形参表函数返回值类型函数名(形参表){函数体}。其中的模板形参表声明是由一个或多个模板形参组成(如果是多个,需要用逗号隔开)。参数在用类模板定义对象时,由于没有像函数实参表这样的额外信息渠道,因此无法按函数模板的方式省略模板形参,但是可以为类模板的参数设置默认值。关键字class除了能用来定义类以外,还能用来声明模板的虚拟类型参数,在用作声明虚拟类型参数时,typename与class可以互换,但不能使用typename来定义类;在模板形参表中除了可以用typename和class声明虚拟类型参数外,还可以使用普通类型声明常规函数。

第7题:

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

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

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

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

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


正确答案:A
解析:本题考查了class和typename两个关键字。关键字class除了能用来定义类以外,还能用来声明模板的虚拟类型参数。在用作声明虚拟类型参数时typename与 class可以互换,但不能使用typename宋定义类。因此,选项B和C是错误的。在模板形参表中除了可以用typename或class声明虚拟类型参数外,还可以使用普通类型声明常规参数,所以选项C是错误的。故本题应该选择A。

第8题:

( 25 )关于关键字 class 和 typename , 下列表述中正确的是

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

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

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

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


正确答案:A

第9题:

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

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

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

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

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


正确答案:C