下面的函数模板定义中错误的是()。A.templateB.template QF(Qx){return Q-x;}下面的函数模板定义中错误的是( )。A.template<class Q>B.template<class Q> QF(Qx){return Q-x;} QF(Qx){return x+x;}C.template<class T>D.template<class T> TF(Tx){return x*x;} boolP(Tx){return X>1;)

题目
下面的函数模板定义中错误的是()。A.templateB.template QF(Qx){return Q-x;}

下面的函数模板定义中错误的是( )。

A.template<class Q>

B.template<class Q> QF(Qx){return Q-x;} QF(Qx){return x+x;}

C.template<class T>

D.template<class T> TF(Tx){return x*x;} boolP(Tx){return X>1;)


相似考题
更多“下面的函数模板定义中错误的是()。A.templateB.template QF(Qx){return Q-x;} 下面的函数模板定义中错误的是( )。A.template<class Q>B.template<class Q> QF(Qx){return Q-x;} QF(Qx){return x+x;}C.template<class T>D.template<class T>”相关问题
  • 第1题:

    下列函数模板的定义中,合法的是A.template T abs(T x){return x<0?-x:x;}B.templat

    下列函数模板的定义中,合法的是

    A.template <typename T> T abs(T x){return x<0?-x:x;}

    B.template class <T> T abs(T x){return x<0?-x:x;}

    C.template T<class T>abs(T x){return x<0?-x:x;}

    D.template T abs(T x){return x<0?-x:x;}


    正确答案:A
    解析:本题考查的知识点是:函数模板。声明一个函数模板的格式是:
    template模板形参表声明>>函数声明>
    其中的模板形参表声明>是由一个或多个模板形参>组成。每个模板形参>具有下面几种形式:
    (1)typename参数名>
    (2)class参数名>
    (3)类型修饰>参数名>
    故本题应该选择A。

  • 第2题:

    下列对模板的声明中,正确的是A.templateB.templateC.template

    下列对模板的声明中,正确的是

    A.template<T>

    B.template<class T1,T2>

    C.template<class T1,class T2>

    D.tamplate<class T1;class T2>


    正确答案:C
    解析:本题考核模板的定义。模板定义的类型参数表>中包含一个或多个由逗号分隔的类型参数项,每一项由关键字class后跟一个用户命名的标识符,此标识符为类型参数,它不是一种数据类型,但可以同一般数据类型一样使用。在使用类模板时,必须将其实例化,即用实际的数据类型代替它。

  • 第3题:

    有如下函数模板定义: template T func(Tx,Ty){return x*x+y*y;} 在下列对func

    有如下函数模板定义: template<class t> T func(Tx,Ty){return x*x+y*y;} 在下列对func的调用中,错误的是

    A.func(3,5);

    B.func(3.0,5.5);

    C.func(3,5.5);

    D.func<int>(3,5.5)


    正确答案:C
    解析:模板类型参数歧义。

  • 第4题:

    下面的函数模板定义中错误的是A.template q F(Q x) {return Q+x;}B.template

    下面的函数模板定义中错误的是

    A.template <class Q> q F(Q x) {return Q+x;}

    B.template <class Q> Q F(Q x){return x+x;}

    C.template <class T> T F(Tx){return x*x;}

    D.template <class T> bool F(Tx){return x>1;}


    正确答案:A
    解析:本题考核函数模板的定义。模板定义的类型参数表>中包含一个或多个由逗号分隔的类型参数项,每一项由关键字class后跟一个用户命名的标识符,此标识符为类型参数,它不是一种数据类型。A) 选项中标识符Q作为类型参数,不能用作数据类型参与"Q+x"的运算。

  • 第5题:

    下列模板的声明中,正确是A.templateB.templateC.templateD.

    下列模板的声明中,正确是

    A.template<T>

    B.template<class T1,T2>

    C.template<class T1,class T2>

    D.template<class T1 ;class T2>


    正确答案:C
    解析:本题考核模板的定义。模板定义的类型参数表>中包含一个或多个由逗号分隔的类型参数项,每一项由关键字class后跟一个用户命名的标识符,此标识符为类型参数,它不是一种数据类型,但可以同一般数据类型一样使用。在使用类模板时,必须将其实例化,即用实际的数据类型代替它。

  • 第6题:

    当运算符重载为成员函数时,如果函数参数表中没有参数,则表明该重载为单目运算符,操作数就为该对象本身;如果函数参数表中有一个参数,则表示该重载为双目运算符,另外一个操作数为该对象本身。

    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没有类型参数限制定义,所以和题干给出的定义不同。

  • 第7题:

    下列函数模板的定义中,合法的是( )。

    A.template<typename T>T abs(T X){return x<07-x:X;}

    B.template Class<T>T abs(T x){return x<07-X:x;}

    C.template T<Class T>abs(T X){return x<07-x:X;}

    D.template T abs(T x){return X<0?-X:x;}


    正确答案:A
    本题考查模板函数的基本概念.根据模板函数的定义,所以答案为A。

  • 第8题:

    以下对模板的说明,正确的是()。A.templateB.templateC.template

    以下对模板的说明,正确的是( )。

    A.template<T>

    B.template<classT1,T2>

    C.template<class T1,class T2>

    D.template<class T1;class T2>


    正确答案:C

  • 第9题:

    下列对模板的声明中,正确的是A.templateB.templateC.template

    下列对模板的声明中,正确的是

    A.template<T>

    B.template<class T1,T2>

    C.template<classT1,class T2>

    D.template<classT1;class T2>


    正确答案:C
    解析:本题考核模板的定义。模板定义的类型参数表>中包含一个或多个由逗号分隔的类型参数项,每一项由关键字class后跟一个用户命名的标识符,此标识符为类型参数,它不是一种数据类型,但可以同一般数据类型一样使用。在使用类模板时,必须将其实例化,即用实际的数据类型代替它。

  • 第10题:

    下列模板声明中有语法错误的是A.templateT fun(T x){return x;}B.template

    下列模板声明中有语法错误的是

    A.template<typename T>T fun(T x){return x;}

    B.template<typename T>T fun(T x,int n){return x术n;}

    C.template<class T>T fun(T*P){return*P;}

    D.template


    正确答案:C

  • 第11题:

    下列关于函数模板的定义中,合法的是()。A.template class T abs(T z) {return z<0 ?-z:z;}B.te

    下列关于函数模板的定义中,合法的是( )。

    A.template class <T>T abs(T z) {return z<0 ?-z:z;}

    B.template<typename T>T abs(T z) {return z<0 ?-z:z;}

    C.template T<class T>abs(T z) {return z<0 ?-z:z;}

    D.template T abs(Tz) {return z<0 ?z:z;}


    正确答案:B
    解析:声明一个函数模板格式是:
      template模板形参表声明>函数声明>
      其中模板形参表声明>是由一个或多个模板形参>组成(如果是多个需要用逗号隔开)。其中,模板形参>可以换成class,函数的声明部分和一般函数的声明部分类似,只有某些类型修饰符被虚拟类型参数替代。

  • 第12题:

    下面的函数模板定义中错误的是______ 。A.template QF (Q x){return Q +x;}B.template<

    下面的函数模板定义中错误的是______ 。

    A.template<class Q > QF (Q x){return Q +x;}

    B.template<class Q > QF (Q x){returnx/x;}

    C.template <class T > T F(T x) {return x*x;}

    D.template <class T> bool F (T x) {return x>1;}


    正确答案:A
    解析:Q只是模板的语法要求,不能作为一个值。

  • 第13题:

    下列对模板的声明,正确的是()。A.templateB.templateC.template

    下列对模板的声明,正确的是( )。

    A.template<T>

    B.template<classT1,T2>

    C.template<class T1,classT2>

    D.template<class T1;class T2>


    正确答案:C
    解析:模板定义的类型参数表>中包含一个或多个由逗号分隔的类型参数项,每一项由关键字class后跟一个用户命名的标识符,此标识符为类型参数,它不是一种数据类型,但可以同一般数据类型一样使用。在使用类模板时,必须将其实例化,即用实际的数据类型代替它。

  • 第14题:

    下列是模板声明的开始部分,其中正确的是______ 。A.templateB.template C.templa

    下列是模板声明的开始部分,其中正确的是______ 。

    A.template<T>

    B.template <class T1,T2>

    C.template <class T1,class T2>

    D.template <class T1;class T2>


    正确答案:C
    解析:模板声明的语法定义。

  • 第15题:

    下列函数模板定义中错误的是A.templateB.template Q F(Q x){return Q+x;} Q F

    下列函数模板定义中错误的是

    A.template<class Q>

    B.template<class Q> Q F(Q x){return Q+x;} Q F(Q x){return x+x;}

    C.template<class T>

    D.template<class T> T F(T x){return x * x;} bool F(T x){return x>1;}


    正确答案:A
    解析:在函数模板定义中,类型参数不能参与运算。

  • 第16题:

    下列对模板的声明中正确的是()。A.templateB.templateC.template

    下列对模板的声明中正确的是( )。

    A.template<T>

    B.template<class T1,T2>

    C.template<classT1,class T2>

    D.template<class T1;class T2>


    正确答案:C

  • 第17题:

    有如下函数模板定义:template T func(T x, T y){return x*x*y*y;)在下列对func的调用中

    有如下函数模板定义: template <class T> T func(T x, T y){return x*x*y*y;) 在下列对func的调用中,错误的是

    A.func(3,5);

    B.func(3.0,5.5);

    C.func(3,5.5);

    D.func<int>(3,5.5);


    正确答案:C
    解析:本题考核函数模板的使用。引用模板函数和引用一般的函数在语法形式上没有任何区别。所有的类型替换都是编译器在幕后悄悄进行的,但是要注意的是说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中对应的形参。例如,本题中的C)选项,编译系统从第一个参数“3”获得的信息是“T对应于int”,而从第二个参数“5.5”处获得的信息是“T对应于double”,二者相互矛盾,在编译时会产生错误。对于D)选项中紧跟在函数名后的int>就是模板实参表,通过它通知编译系统在调用过程中,double型的参数“5.5”将被自动换成int型。

  • 第18题:

    下列对模板的声明,正确的是()。A.templateB.templateC.template

    下列对模板的声明,正确的是( )。

    A.template<T>

    B.template<class T1,T2>

    C.template<class T1,class T2>

    D.template<class T1;class T2>


    正确答案:C

  • 第19题:

    下列的模板说明中,正确的是( )。A.template B.template C.template

    下列的模板说明中,正确的是( )。

    A.template <T1,T2>

    B.template <class T1,T2>

    C.template <class T1,class T2>

    D.template <typename T1;typename T2>


    正确答案:A
    解析:模板说明,要求每个参数前都有一个类型参数,多个参数需用逗号隔开。

  • 第20题:

    下列对模板的声明中正确的是A.templateB.templateC.template

    下列对模板的声明中正确的是

    A.template<T>

    B.template<class T1,T2>

    C.template<class T1,class T2>

    D.template<class T1;class T2>


    正确答案:C
    解析:本题考核模板的定义。模板定义的类型参数表>中包含一个或多个由逗号分隔的类型参数项,每一项由关键字class后跟一个用户命名的标识符,此标识符为类型参数,它不是一种数据类型,但可以同一般数据类型一样使用。在使用类模板时,必须将其实例化,即用实际的数据类型代替它。

  • 第21题:

    有如下函数模板:templateT square (Tx) {return x*x;)其中T是()A.函数形参B.函数实参C.

    有如下函数模板: template<class T>T square (Tx) {return x*x;) 其中T是( )

    A.函数形参

    B.函数实参

    C.模板形参

    D.模板实参


    正确答案:C
    解析:此题考查的是函数模板。声明一个函数模板的格式是:
      template模板形参表声明>函数声明,{函数体}
      其中的模板形参表声明>是由一个或多个“模板形参”组成的,每个“模板形参”可具有以下几种形式:typename参数名;class参数名;类型修饰参数名。

  • 第22题:

    有如下模板声明: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没有类型参数限制定义,所以和题干给出的定义不同。

  • 第23题:

    下列模板定义中不正确的是

    A.emplate Q F(Q x){return Q+x;}

    B.template Q F(Q x){return x+x;}

    C.template T F(T x){return x * x;}

    D.template T F(T x){return x;}


    正确答案:A
    考点:本题主要考查知识点为函数模板透析:Q是数据类型,不是变量,所以不能作为返回值