有如下函数模板: template T cast(Uu){ return u;} 其功能是有如下函数模板: template<typename T,typename U> T cast(Uu){ return u;} 其功能是将U类型数据转换为T类型数据。已知i为int型变量,下列对模板函数cast的调用中正确的是A.cast(i);B.cast<>(i);C.cast<char*,int>(i);D.cast<double,int>(i);

题目
有如下函数模板: template T cast(Uu){ return u;} 其功能是

有如下函数模板: template<typename T,typename U> T cast(Uu){ return u;} 其功能是将U类型数据转换为T类型数据。已知i为int型变量,下列对模板函数cast的调用中正确的是

A.cast(i);

B.cast<>(i);

C.cast<char*,int>(i);

D.cast<double,int>(i);


相似考题
更多“有如下函数模板: template<typename T,typename U> T cast(Uu){ return u;} 其功能是 ”相关问题
  • 第1题:

    有如下函数模板: template<typename T.typename U> T east(U u)i return u;} 其功能是将U类型数据转换为T类型数据。已知i为int型变量,下列对模板函数cast的调用中正确的是( )。

    A.cast(i);

    B.cast<>(i);

    C.east<char*,int>(i);

    D.east<double,int>(i);


    正确答案:D
    本题考查函数模板的基本运用,属于基础知识。函数模板实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型代表,这个通用函数就是函数模板。函数模板可以设定默认参数,这样在调用模板函数时就可以省略实参,函数模板的实例就是一个函数的定义。所以本题答案为D。

  • 第2题:

    有如下函数模板: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参数名;类型修饰参数名。

  • 第3题:

    以下类模板成员函数定义正确的是:

    A.template<class T> auto MyClass::foo(){ std::cout << "Aloha World!"<<std::endl; }#B.template<class T> auto MyClass<T>::foo(T t){ std::cout << t << std::endl; }#C.void MyClass<T>::foo(T t){ std::cout << t << std::endl; }#D.template<class T, int S> S MyClass<T, S>::foo(T t, S s){ s = static_cast<S>(t); std::cout << s << std::endl; retu
    template auto MyClass ::foo(T t){ std::cout <

  • 第4题:

    有如下函数模板定义:templateT1 sum(T1 a1) {return(a1+a2+a3);}则

    有如下函数模板定义: template<typename T1,int a2,int a3> T1 sum(T1 a1) { return(a1+a2+a3); } 则以下调用中正确的是( )。

    A.sum<int,4,3>(5);

    B.sum<4,3>(5);

    C.sum<int,int,int>(5);

    D.sum(5);


    正确答案:A

  • 第5题:

    有如下函数模板定义: template T1 fun(T1 a1) { return(al+a2+a3);

    有如下函数模板定义: template<typename T1,int a2,int a3> T1 fun(T1 a1) { return(al+a2+a3); } 则下列调用中正确的是( )。

    A.fun<int,4,3>(5);

    B.fun<4,3>(5);

    C.fun<int,int,int>(5);

    D.fun(5);


    正确答案:A
    解析: 类模板是类的抽象,类是类模板的实例。在调用时,尖括号内指定实际的类型名,在编译时,编译系统就用int取代类模板中的类型参数,这样就具体化了类模板。其中的参数为4,3。