更多"假设有函数模板定义如下,下列各选项中正确的是( )。 Templa"的相关试题:
[单项选择]有如下函数模板的定义:
template<class T>
T func(T x,T y)return x*x+y*y;
在下列对func的调用中不正确的是
A. func(3,5);
B. func<>(3,5);
C. func(3,5.5);
D. func<int>(3,5.5);
[填空题]类模板成员函数体外定义时,必须用与声明该类模板一样的template < class模板形参 >声明,使它成为 【15】 。
[填空题]有如下的类的模板定义:
template <class T>
class MyClass
{
private:
T number;
public:
MyClass(T k);
…
};
其中构造函数MyClass( )用k的值初始化数据成员n。因此在模板类体外,构造函数
MyClass应定义为 【12】 。
[单项选择]有如下函数模板:
template<class T>T square (T x) return x*x;
其中T是( )。
A. 函数形参
B. 函数实参
C. 模板形参
D. 模板实参
[单项选择]有如下类模板定义:
template<typename T>
class BigNumbei
long n;
public;
BigNumber(T i):n(i)
BigNumber operator+(BigNumber b)
return:BigNumber(n+b.n);
;
已知b1、b2是BigNumber的两个对象,则下列表达中错误的是( )。
A. b1+b2
B. b1+3
C. 3+b1
D. 3+3
[单项选择]有如下类模板定义:
template <typename T>
class BigNumber
longn;
public:
BigNumber(T i):n(i)
BigNumber operator +(BigNumber b)
return BigNumber(n+b.n);
;
已知b1、b2是BigNumber的两个对象, 则下列表达式中错误的是
A. b1+b2
B. b1+3
C. 3+b1
D. 3+3
[填空题]有如下的类模板定义:
template<typename TYPE>
class MyClass
TYPE n;
public:
MyClass(TYPE k);
;
其中构造函数MyClass用的值初始化数据成员n。因此在模板类体外,构造函数MyClass应定义_____。
[填空题]有如下的类模板定义:
template<typename TYPE>
class MyClass {
TYPE n;
public:
MyClass(TYPE k);
};
其中构造函数MyClass用的值初始化数据成员n。因此在模板类体外,构造函数MyClass应定义_____。
[单项选择]有如下函数模板定义:
template<typename T1, typename T2>
T1 FUN(T2 n) return n*5.0;
若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为( )。
A. FUN(9)
B. FUN<9>
C. FUN<double>(9)
D. FUN<9>(double)
[单项选择]有如下函数模板定义:
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);
[单项选择]有如下函数模板定义:
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. template <class Q>
B. template <class Q>
C. template<class T>
D. template <class T>
[单项选择]若有函数模板mySwap和一些变量定义如下:
template
void mySwap(T X,T Y);
double d1,d2;int i1,i2;
下列对mySwap的调用中,错误的是
A. mySwap(i1,i2)
B. mySwap(d1,d2)
C. mySwap(i1,d1)
D. mySwap(i2,d2)
[单项选择]设有函数模板
template<class Q>
Q Sum(Q x,Q y)
return(x)+(y);
则下列语句中对该函数模板的使用错误的是( )
A. Sum(10,2);
B. Sum(5.0,6.7);
C. Sum(15.2f,16.0f);
D. Sum("AB","CD");
[填空题]已知一个函数模板定义为
template <typename T1.typenaine T2>
T1 FUN(T2 n)return n*5.0;
若要求以int型数据7为函数实参调用该模板函数,并返回一个double型数据,则该调用应表示为______。
[填空题]所有的函数模板定义都是以关键字 [15] 开始的。