( 25 )有如下模板声明: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;

题目

( 25 )有如下模板声明:

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;


相似考题
更多“( 25 )有如下模板声明:template &lt;typename T1, typename T2&gt; class A;下列声明中,与上述声 ”相关问题
  • 第1题:

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

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

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

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

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


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

  • 第2题:

    对于模板定义关键字class和typename说法不正确的是( )。

    A.程序中的class并不能都替换为typename

    B.class和typename都可互相替换

    C.程序中的typename都能替换为class

    D.程序中的部分class可以替换为typename


    正确答案:B
    B。【解析】在C++程序中,typename是可以替换为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.程序中的class并不能都替换为typename

    B.class和typename都可互相替换

    C.程序中的typename都能替换为class

    D.程序中的部分class可以替换为typename


    正确答案:B

  • 第6题:

    有如下模板声明: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;


    正确答案:D
    解析:在模板定义中,一般情况下,class和typename可以互换。在选项D中,T2没有类型参数限制定义,所以和题干给出的定义不同。