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

题目

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

A.cast(i);

B.cast<>(i);

C.cast(i);

D.cast(i);


相似考题
更多“有如下函数模板:templateT cast(Uu){return u;}其功能是将U类型数据转换为T类型数据。已知i为int ”相关问题
  • 第1题:

    有如下函数模板:templateT cast (U u){return u;}其功能是将U 类型数据

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

    A.cast (i);

    B.cast <>(i);

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

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


    正确答案:D

  • 第2题:

    有如下函数模板定义: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

  • 第3题:

    关于C++类型转换说法正确的有

    A.static_cast用于基础数据类型转换,也可以将指针转换为 void * 类型指针

    B.dynamic_cast 主要用于继承链上的指针类型或者引用类型转换

    C.reinterpret_cast 用于将某个类型直接转换为另外一个类型,转换只是对原来的比特信息进行新的解释

    D.dynamic_cast 主要用于指针类型间的转换

    E.static_cast用于基础数据类型转换,也可以用于多态的指针类型转换

    F.reinterpret_cast 只能用于将指针转换为长整型


    B

  • 第4题:

    有如下函数模板: 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。

  • 第5题:

    有如下函数模板: 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);


    正确答案:D
    解析:本题考查的知识点是模板函数的调用。在调用一个模板函数时,编译系统需要足够的信息来判别每个虚拟类型参数所对应的实际类型,可以从两个不同的渠道获得这样的信息:从模板的实参表(用<和>括起来的参数表)或从模板函数实参表 (用(和)括起来的参数表),模板实参的信息优先于函数实参的信息。如果从后者获得的信息已经能够判定其中部分或全部虚拟类型参数所对应的实际参数,而且它们又正好是参数表中最后的若干参数,则模板实参表中的那几个参数可以省略。如果模板实参表中的实参都被省略了,则连空表<>也可以不要。本题中cast()函数的实参 i只能确定模板参数u的类型为int,而不能确定另外一个模板参数T。故选项A与B不正确。选项C希望将int转型为char*,C++中不允许隐式的这样转换类型,所以也不正确。故应该选择D。