已知主函数中通过如下语句序列实觋对函数模板swap的调用: inta[10],b[1O]; swap(a,b,10); 下列对函数模板swap的声明中,会导致上述语句序列发生编译错误的是( )。A.template<typcnameT> voidswap(Ta[],Tb[],intsize);B.template<typcnameT> voidswap(intsize,Ta[],Tb[]);C.template<typenameT1,typenameT2> voidswap(T1a[],T2b[],int

题目

已知主函数中通过如下语句序列实觋对函数模板swap的调用: inta[10],b[1O]; swap(a,b,10); 下列对函数模板swap的声明中,会导致上述语句序列发生编译错误的是( )。

A.template<typcnameT> voidswap(Ta[],Tb[],intsize);

B.template<typcnameT> voidswap(intsize,Ta[],Tb[]);

C.template<typenameT1,typenameT2> voidswap(T1a[],T2b[],intsize);

D.template<classT1,classT2> voidswap(T1a[],T2b[],intsize);


相似考题
更多“已知主函数中通过如下语句序列实觋对函数模板swap的调用: inta[10],b[1O]; swap(a,b,10); 下 ”相关问题
  • 第1题:

    若主函数中有定义语句:int a[10],b[10],c;,在主函数前定义的fun函数首部为:void fun(int x[ ]),则以下选项中错误的调用语句是( )。

    A.fun(b);

    B.fun(&c);

    C.fun(&a[3]);

    D.fun(b[11]);


    答案:D 
    解析:fun函数的形式参数为一个数组,需要实参为一个地址,而b[11]是一个整型元素,参数类型不一致,且b[11]已经溢出,所以D项错误。 

  • 第2题:

    1、下面代码能够实现交换操作的函数有()

    A.swap(int a,int b) { int t=a;a=b;b=t;}

    B.swap(int *a,int *b) {int *c;*c=*a;*a=*b;*b=*c;}

    C.swap(int *a,int *b) {int *c;c=a;a=b;b=c;}

    D.swap(int &a,int &b) {int c=a;a=b;b=c;}

    E.swap(int *a,int *b) {int c=*a;*a=*b;*b=c;}


    swap(int &a,int &b) {int c=a;a=b;b=c;}

  • 第3题:

    下面程序欲对两个整型变量的值进行交换,以下正确的说法是 。main() {int a=10,b=20; printf("(1)a=%d,b=%dn",a,b); swap(&a,&b); printf("(2)a=%d,b=%dn",a,b); } swap (int p,int q) {int t; t=p;p=q;q=t;}

    A.该程序完全正确

    B.该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可

    C.该程序有错,只要将swap()函数中的形参p、q和变量t均定义为指针即可

    D.以上说法都不正确


    以上说法都不正确

  • 第4题:

    利用引用,实现一个swap函数,实现两个整数值的互换。 其可以进行如下应用: int a=10, b=20; swap(a,b) 执行完后,a的值为20,b的值为10。 实现该函数


    B

  • 第5题:

    1、设有下列变量定义与函数声明,则合法的函数调用语句是()。 int x,y; void swap(int *p,int *q);

    A.swap(x,y);

    B.swap(*x,*y);

    C.swap(&x,&y);

    D.swap(p,q);


    A