niusouti.com

在C++语言中,若类C中定义了一个方法int f(int a,int b),那么方法___(33)___不能与该方法同时存在于类C中。(33)A.int f(int x,int y) B.int f(float a,int b)C.float f(int x,float y) D.int f(int x,float y)

题目

在C++语言中,若类C中定义了一个方法int f(int a,int b),那么方法___(33)___不能与该方法同时存在于类C中。

(33)A.int f(int x,int y) B.int f(float a,int b)

C.float f(int x,float y) D.int f(int x,float y)


相似考题
更多“在C++语言中,若类C中定义了一个方法int f(int a,int b),那么方法___(33)___不能与该方法同时存在 ”相关问题
  • 第1题:

    在类A中定义了方法fun(double,int),类B继承自类A,并定义了函数fun(double),这种方式称为(46)。若B中重新定义函数fun(double,int)的函数体,这种方式称为(47)。

    (62)

    A.重置

    B.重载

    C.代理

    D.委托


    正确答案:B

  • 第2题:

    已知程序中已经定义了函数test,其原型是int test(int, int, int);,则下列重载形式中正确的是

    A.char test(int,int,int);

    B.double test(int,int,double);

    C.int test(int,int,int=0);

    D.float test(int,int,float=3.5F);


    正确答案:B
    解析:本题考核函数重载。所谓函数重载,是指同一个函数名可以对应着多个函数的实现。每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。这就是说,进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。不可以根据函数返回值类型来重载函数。A选项中定义只是函数的返回类型不同,不符合重载的条件,C选项也不符合。对于:D选项,形参列表中带有默认参数,如果原型的最后一个也带有默认参数,则会造成不知道该调用哪个函数的错误。

  • 第3题:

    已知程序中已经定义了函数test,其原型是int test (int,int,int);,则下列重载形式中正确的是( )。

    A.char test(int, int, int);

    B.double test (int,int,double);

    C.int test(int ,int, int=0);

    D.float test(int,int,float=3.5F);


    正确答案:B

  • 第4题:

    在C++语言中,若类C中定义了一个方法int f(int a,int b),那么方法 (33)不能与该方法同时存在于类C中。

    A.int f(int x,int y)

    B.int f(float a,int b)

    C.float f(int x,float y)

    D.int f(int x,float y)


    正确答案:A
    本题考查的是面向对象程序设计中的函数名重载机制。在C++中允许在同一个作用域中的同一个函数名字对应着多个不同的函数实现,这种现象称为重载(overloading),这些函数被称为重载函数。每一个重载函数必须具有不同的函数签名,即函数参数的个数不同或者参数的类型不同。根据上述概念来解答试题(33)。在C++中有一类特殊的作用域:类作用域。类中所有的成员都具有类作用域。如果在类C的作用域中存在不止一个名字为f的方法,那么这些方法或者具有不同的参数个数,或者具有不同的参数类型。将4个备选答案依次与题干中给出的方法作比较,可以发现选项A给出的方法的名字、参数个数及参数类型都与题干中给出的方法相同,这就违背了函数名重载的原则,因此该方法不可能与题干中给出的方法共存于类C中。因此正确答案为A。

  • 第5题:

    在C++语言中,若类C中定义了一个方法intf(int a,int b),那么方法不能与该方法同时存在于类C中。

    A.int f(int x,int y)

    B.int f(float a,int b)

    C.float f(int x,float y)

    D.int f(int x,float y)


    正确答案:A
    解析:该题其实考查的是形参和函数重载。编译器视函数“intf(inta,intb)”和“intf(intx,inty)”为同一个函数,尽管两者的形参名称不一样,编译器只管形参的类型是不是一样。在VC6.0中,若在同一个类中定义这两个函数,编译错误信息中会提示“memberfunctionalreadydefinedordeclared”,即成员函数已定义或声明了。对于在同一可访问区内(如同一个类中)被声明的几个具有不同参数列(参数的类型、个数、顺序不同)的同名函数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制叫重载,重载不关心函数的返回值类型。这里,“重载”的“重”的意思不同于“轻重”的“重”,它是“重复”、“重叠”的意思。可见,B、C、D均与“intf(inta,intb)”构成重载。另外,值得特别强调的是,重载不关心函数的返回值类型,在同一个类中,也不允许“intf(inta,intb)”、“floatf(inta,intb)”两者同时存在,这两者不构成重载,编译器无法识别。