单选题关于在调用模板函数时模板实参的使用,下列表述正确的是(  )。A 对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B 对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C 对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D 对于常规参数所对应的模板实参,任何情况下都不能省略

题目
单选题
关于在调用模板函数时模板实参的使用,下列表述正确的是(  )。
A

对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略

B

对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略

C

对于虚拟类型参数所对应的模板实参,若能够省略则必须省略

D

对于常规参数所对应的模板实参,任何情况下都不能省略


相似考题
参考答案和解析
正确答案: B
解析:
模板实参在以下几种情况中不能省略:①与从模板函数实参表获得的信息有矛盾;②需要获得特定类型的返回值,而不管参数的类型如何;③虚拟类型参数没有出现在模板函数的形参表中;④函数模板含有常规形参。
更多“单选题关于在调用模板函数时模板实参的使用,下列表述正确的是(  )。A 对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B 对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C 对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D 对于常规参数所对应的模板实参,任何情况下都不能省略”相关问题
  • 第1题:

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

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

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

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

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


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

  • 第2题:

    如下函数模板: templateT square(T x){return x*x;} 其中T是( )。

    A.函数形参

    B.函数实参

    C.模板形参

    D.模板实参


    正确答案:C
    本题考查模板函数的基本概念,根据模板函数的定义,T是模板形参,所以答案为C。

  • 第3题:

    下面关于函数模板的表述中不正确的是( )

    A.类模板的成员函数都是模板函数

    B.类模板本身在编译过程中不会产生任何代码

    C.类模板只能有虚拟类型的参数

    D.用类模板定义一个对象时,实参不能省略


    正确答案:C

  • 第4题:

    关于类模板,下列表述中不正确的是( )。

    A.类模板的成员函数都是模板函数

    B.类模板本身在编译中不会生成任何代码

    C.类模板只能有虚拟类型参数

    D.用类模板定义一个对象时,不能省略实参


    正确答案:C
    解析:C++中可以为类模板的参数设置默认值,所以选项是C不正确的。

  • 第5题:

    下列有关模板的叙述中,正确的是

    A.函数模板不能含有常规形参

    B.函数模板的一个实例就是一个函数定义

    C.类模板的成员函数不能是模板函数

    D.用类模板定义对象时,绝对不能省略模板实参


    正确答案:B
    解析:类模板可以成为另外一个类模板的成员(叫“成员模板”),函数模板没有实参和形参之分,函数模板可以看成一个无参函数,它的参数要根据调用对象的参数而定。

  • 第6题:

    关于在调用模板函数时实参的使用,下列表述中正确的是

    A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略

    B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略

    C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略

    D.对于常规参数所对应的模板实参,任何情况下都不能省略


    正确答案:D
    解析:模板函数的实参可以省略,但模板实参的省略并不是必然的,而是有条件的。在调用一个模板函数时,编译系统需要足够的信息来判别每个虚拟类型参数所对应的实际类型,可以从两个不同的渠道获得这样的信息:从模板实参表(用和>括起来的参数表)或从模板函数实参表(用()括起来的参数表),模板实参的信息优先于函数实参的信息。如果从后者获得的信息已经能够判定其中部分或全部虚拟类型参数所对应的实际参数,而且它们又正好是参数表中最后的若干个参数,则模板实参表中的那几个参数可以省略。如果模板实参表中的实参都被省略了,则连空表>也可以不要。反之,对于某个模板实参,如果从模板函数的实参表中无法获得同样的信息,就不能省略;或者虽然能够获得同样的信息,但在它后面还有其他不能省略的实参,则其自身还是不能省略.由此可知只有D) 选项的说法是正确的。

  • 第7题:

    关于调用模板函数时模板实参的使用,下列表述中正确的是( )。

    A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略

    B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略

    C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略

    D.对于常规参数所对应的模板实参,任何情况下都不能省略


    正确答案:D
    解析: 以下情况模板实参不能省略:从模板函数实参表获得的信息有矛盾:需要获得特定类型的返回值,而不管返回值类型如何:虚拟类型的参数没有出现在模板形参表中;函数模板含有常规形参。

  • 第8题:

    下列关于函数模板实参不能省略的情况说明不正确的是( )

    A.从模板函数实参表获得的信息有矛盾
    B.需要获得特定类型的返回值,而不管参数的类型如何
    C.虚拟类型参数没有出现在模板函数的形参表中
    D.函数模板不含有常规形参

    答案:D
    解析:

  • 第9题:

    下面关于函数调用时的注意事项描述错误的是()

    • A、实参与形参的个数可以不同,类型可以不对应
    • B、实参与形参的个数应相等,类型匹配
    • C、实参与形参按顺序对应,一一传递数据
    • D、如果实参表列包含多个实参,则各参数间用逗号隔开

    正确答案:A

  • 第10题:

    单选题
    关于模板,下列说法不正确的是(  )。
    A

    用类模板定义一个对象时,不能省略实参

    B

    类模板只能有虚拟类型参数

    C

    类模板本身在编译中不会生成任何代码

    D

    类模板的成员函数都是模板函数


    正确答案: A
    解析:
    C++中可以为类模板的参数设置默认值。类模板不是一个实实在在的类,本身在编译中不会生成任何代码;用类模板定义一个对象时,不能省略实参;类模板的成员函数都是模板函数。

  • 第11题:

    单选题
    下列关于模板的描述中,错误的是(  )。
    A

    类模板的成员函数都是模板函数

    B

    函数模板是一种参数化类型的函数

    C

    满足一定条件时可以省略模板实参

    D

    模板形参只能由关键字typename声明


    正确答案: A
    解析:
    同一模板的声明和定义中,模板形参的名字不必相同。每个模板类型形参前面必须带上关键字typename/class,每个非模板类型形参前面必须带上类型名字。

  • 第12题:

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

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

    B

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

    C

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

    D

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


    正确答案: A
    解析:
    在声明函数模板时,关键字typename和class可以互换,两者是等价的;但在类模板声明中,替换可能会引起麻烦。

  • 第13题:

    ( 15 )下列关于函数模板的描述中,错误的是

    A )从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准

    B )对于常规参数所对应的模板实参,任何情况下都不能省略

    C )虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参

    D )模板参数表不能为空


    正确答案:B

  • 第14题:

    下列关于模板的说法正确的是

    A.模板的实参在任何时候都可以省略

    B.类模板与模板类所指的是同一概念

    C.类模板的参数必须是虚拟类型的

    D.类模板中的成员函数全部都是模板函数


    正确答案:D

  • 第15题:

    关于类模板,下列表述不正确的是

    A.用类模板定义一个对象时,不能省略实参

    B.类模板只能有虚拟类型参数

    C.类模板本身在编译中不会生成任何代码

    D.类模板的成员函数都是模板函数


    正确答案:B
    解析:本题考核类模板的概念。类模板就是一系列相关类的模型或样板,这些类的成员组成相同,成员函数的源代码形式相同,所不同的只是所针对的类型(成员的类型以及成员函数的参数和返回值的类型)。C++中可以为类模板的参数设置默认值,所以B) 选项是不正确的,其他选项的表述都是正确的。

  • 第16题:

    下列关于函数模板的描述中,错误的是

    A.从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准

    B.对于常规参数所对应的模板实参,任何情况下都不能省略

    C.虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参

    D.模板参数表不能为空


    正确答案:D
    解析:模板实参的省略在调用一个模板函数时,编译系统需要足够的信息来判别每个虚拟类型参数所对应的实际类型,可以从两个不同的渠道获得这样的信息:从模板实参表或从模板函数实参表,模板实参的信息优先于函数实参的信息。因此,A)选项是正确的。下面列举几种模板实参不能省略的情况。①从模板函数实参表获得的信息矛盾。②需要获得特定类型的返回值,而不管参数的类型如何。③虚拟类型参数没有出现在模板函数的形参表中。④函数模板含有常规形参。由3和4可以看出选项B)、c)是正确的,因此选D)。如果模板实参表中的实参都被省略了,则连空表也可以不要,也就是说模板参数表可以为空。

  • 第17题:

    下列叙述正确的是( )。

    A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略

    B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略

    C.对于常规参数所对应的模板实参,任何情况下都不能省略

    D.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略


    正确答案:C
    解析:本题考核函数模板的使用。函数的实参可以省略,但模板实参的省略并不是必然的,而是有条件的。

  • 第18题:

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

    A.类模板的成员函数都是模板函数

    B.函数模板是一种参数化类型的函数

    C.满足一定条件时可以省略模板实参

    D.模板形参只能由关键字typename声明


    正确答案:D
    D。【解析】template<typename(或class)数据类型参数标识符>。

  • 第19题:

    下面关于函数模板的表述中不正确的是( )。

    A)类模板的成员函数都是模板函数

    B)类模板本身在编译过程中不会产生任何代码

    C)类模板只能有虚拟类型的参数

    D)用类模板定义一个对象时,实参不能省略


    正确答案:C

  • 第20题:

    关于模板下列说法不正确的是( )

    A.用类模板定义一个对象时,不能省略实参
    B.类模板只能有虚拟类型参数
    C.类模板本身在编译中不会生成任何代码
    D.类模板的成员函数都是模板函数

    答案:B
    解析:

  • 第21题:

    单选题
    下列有关模板的叙述中,正确的是(  )。
    A

    函数模板不能含有常规形参

    B

    函数模板的一个实例就是一个函数定义

    C

    类模板的成员函数不能是模板函数

    D

    用类模板定义对象时,绝对不能省略模板实参


    正确答案: D
    解析:
    A项错误,函数模板可以含有常规形参;B项正确,函数模板的一个实例就是一个函数定义;C项错误,类模板中的成员函数都是模板函数;D项错误,在用类模扳定义对象时,由于没有像函数实参表这样的额外信息渠道,因此无法按函数模板的方式省略模板形参,但是可以为类模板的参数设置默认值。

  • 第22题:

    单选题
    下列关于函数模板的描述中,错误的是(  )。
    A

    从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准

    B

    对于常规参数所对应的模板实参,任何情况下都不能省略

    C

    虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参

    D

    模板参数表不能为空


    正确答案: C
    解析:
    在调用一个模板函数时,如果编译系统能够从模板实参表判断其中或全部虚拟类型参数对应的实际参数,而且它们正好是参数表中最后的若干参数,则模板实参表中的那几个参数可以省略,因此模板参数表可以为空。

  • 第23题:

    单选题
    下面关于函数模板的表述中不正确的是(  )。
    A

    类模板的成员函数都是模板函数

    B

    类模板本身在编译过程中不会产生任何代码

    C

    类模板只能有虚拟类型的参数

    D

    用类模板定义一个对象时,实参不能省略


    正确答案: C
    解析:
    类模板本身在编译时是不会产生代码的,只有在其实例
    化以后才产生代码。定义一个对象时,不能省略其实参。