单选题有函数模板声明和一些变量定义如下:templateT1 sum(T2,T3);double d1,d2;则下列调用中,错误的是(  )。Asumdouble,double,double(d1,d2);Bsumdouble,double(d1,d2);Csumdouble(d1,d2);Dsum(d1,d2);

单选题
有函数模板声明和一些变量定义如下:templateT1 sum(T2,T3);double d1,d2;则下列调用中,错误的是(  )。
A

sum<double,double,double>(d1,d2);

B

sum<double,double>(d1,d2);

C

sum<double>(d1,d2);

D

sum(d1,d2);


参考解析

解析:
虚拟类型参数T1没有出现在模板函数的形参表中,在调用时不能从模板函数的实参表中获得相应的信息,因此调用时,参数T1无法省略。

相关考题:

补充完整下面的模板定义: template//Type为类型参数 class Xtwo{//由两个Type类型 补充完整下面的模板定义:template<class Type> //Type为类型参数class Xtwo{ //由两个Type类型的数据成员构成的模板类Type a;Type b;public:Xtwo(Type aa=0,Type bb=0):a(aA) ,b(bB) { }int Compare( ){ //比较a和b的大小if(a>B) return 1;else if(a==B) return 0;else return-1;}Type Sum( ){return a+b;} //返回a和b之和Type Mult( ); //函数声明,返回a和b之乘积};template<class Type>______ ::Mult( ){return a*b;} //Mult函数的类外定义

下列是模板声明的开始部分,其中正确的是A.templateB.templateC.template 下列是模板声明的开始部分,其中正确的是A.template<T>B.template<class T1,T2>C.template<class T1,class T2>D.template<class T1;class T2>

( 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;

有如下函数模板定义:templateT2 plus T1 t1,T3 t3){retur 有如下函数模板定义: template<typename T1,typename T2,typename T3> T2 plus T1 t1,T3 t3){return t1+t3;} 则以下调用中正确是A.plus(3,5L);B.plus<>(3,5L);C.plus<int>(3,5L);D.plus<int,double>(3,5L);

下列对模板的声明,正确的是()。A.templateB.templateC.template 下列对模板的声明,正确的是( )。A.template<T>B.template<classT1,T2>C.template<class T1,classT2>D.template<class T1;class T2>

下列对模板的声明中,正确的是A.templateB.templateC.template 下列对模板的声明中,正确的是A.template<T>B.template<class T1,T2>C.template<class T1,class T2>D.tamplate<class T1;class T2>

下面的函数模板定义中错误的是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;}

有函数模板声明和一些变量定义如下:templateclass T1,class T2,class T3T1 sum(T2,T3);double d1,d2;则下列调用中,错误的是A.sumdouble,double,double(d1,d2);B.sumdouble,double(d1,d2);C.sumdouble(d1,d2);D.sum(d1,d2);

有如下模板声明:templatetypename T1,typename 12class A;下列声明中,与上述声明不等价的是A.templateclass T1,class T2class A;B.templateclass T1,typename T2class A;C.templatetypename TI,class T2class A;D.templatetypename T1,T2class A;

下列对模板的声明中正确的是()。A.templateB.templateC.template 下列对模板的声明中正确的是( )。A.template<T>B.template<class T1,T2>C.template<classT1,class T2>D.template<class T1;class T2>

下列模板的声明中,正确是A.templateB.templateC.templateD. 下列模板的声明中,正确是A.template<T>B.template<class T1,T2>C.template<class T1,class T2>D.template<class T1 ;class T2>

下面不属于同一函数模板的是()。A.template t1 max(t1 a,t1 b) {…}template 下面不属于同一函数模板的是( )。A.template<class t1> t1 max(t1 a,t1 b) {…}template<class t2> t2 max(t2 a,t2 b) {…}B.template<class t1>t1 max(t1 a,t1 b){…}template<class t2>t2 max(t2 a,t2 b){…}C.template<class t1> t1 max(t1 * a,t1 * b) {…} template<class t2> t2 max(t2 a,t2 b) {…}D.template<class t1>t1 max(t1 a,t1 b){…}template<class t2>t2 max(t2 a,t2 b,t2 c){…}

有如下的类的模板定义: template class MyClass { private:T number; public:MyClass( 有如下的类的模板定义:template <class T>class MyClass{private:T number;public:MyClass(T k);…};其中构造函数MyClass()用k的值初始化数据成员n。因此在模板类体外,构造函数MyClass应定义为【 】。

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

有如下函数模板定义: template T2 plus(T1 t1,T3 t3){re 有如下函数模板定义: template <typename T1,typename T2,typename T3> T2 plus(T1 t1,T3 t3){return t1+t3;}A.plus(3,5L);B.plus<>(3,5L);C.plus<int>(3,5L);D.plus<int, double>(3,5L);

下列对模板的声明,正确的是()。A.templateB.templateC.template 下列对模板的声明,正确的是( )。A.template<T>B.template<class T1,T2>C.template<class T1,class T2>D.template<class T1;class T2>

下面的函数模板定义中错误的是()。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.templateC.template 下面对模板的声明正确的是 ______。A.template<T>B.template<class T1,T2>C.template<classT1,classT2>D.template<classT1; classT2>

下列的模板说明中,正确的是( )。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.templateB.templateC.template 以下对模板的说明,正确的是( )。A.template<T>B.template<classT1,T2>C.template<class T1,class T2>D.template<class T1;class T2>

下列对模板的声明中正确的是A.templateB.templateC.template 下列对模板的声明中正确的是A.template<T>B.template<class T1,T2>C.template<class T1,class T2>D.template<class T1;class T2>

下列对模板的声明中,正确的是A.templateB.templateC.template 下列对模板的声明中,正确的是A.template<T>B.template<class T1,T2>C.template<classT1,class T2>D.template<classT1;class T2>

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

下面的函数模板定义中错误的是______ 。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.templateB.templateC.templateD 下列对模板的声明中正确的是A.template<T>B.template<class T1,T2>C.template<classT1,classT2>D.template<classT1;classT2>

在下列模板说明中,正确的是()A、template〈typename T1,T2〉B、template〈class T1,T2〉C、template〈typename T1,typename T2〉D、template(typedef T1,typedef T2)

单选题下列对模板的声明中,正确的是(  )。Atemplate<T>Btemplate<class T1,T2>Ctemplate<class T1,class T2>Dtemplate<class T1;class T2>

单选题有如下模板声明:template class A;下列声明中,与上述声明不等价的是(  )。Atemplateclass T1,class T2 class A;Btemplateclass T1,typename T2 class A;Ctemplatetypename T1,class T2 class A;Dtemplatetypename T1,T2 class A;