niusouti.com

在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(mtx,float y)D.int f(int x,float y)

题目

在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(mtx,float y)

D.int f(int x,float y)


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

    在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。

  • 第2题:

    String类的IndexOf()方法返回的类型是()

    A.Int16

    B.Int32

    C.int

    D.long


    参考答案:B, C

  • 第3题:

    假定K是一个类名,并有定义“K k; int j;”,已知K中重载了操作符 (),且语句“j=k(3);”和“k(5)=99;”都能顺利执行,说明该操作符函数的原形只可能是()。

    A.K operator () (int);

    B.int operator ()(int&);

    C.int & operator ()(int);

    D.K &operator()(int);


    int &operator ()(int );

  • 第4题:

    在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)”两者同时存在,这两者不构成重载,编译器无法识别。

  • 第5题:

    9、对于K类对象k,若为类K中重载了操作符 “[ ]”,若语句int j=k[3];和k[5]=99;都能顺利执行, 则该操作符函数的原形是()

    A.K operator[](int);

    B.int operator[ ](int);

    C.int & operator [ ](int);

    D.K operato[ ] (int);


    int & operator [ ](int);