问题 单项选择题

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

D.int f(int x,float y)

答案

参考答案:A

解析:

本题考查的是面向对象程序设计中的函数名重载机制。

在C++中允许在同一个作用域中的同一个函数名字对应着多个不同的函数实现,这种现象称为重载(overloading),这些函数被称为重载函数。每一个重载函数必须具有不同的函数签名,即函数参数的个数不同或者参数的类型不同。

根据上述概念来解答试题 (33) 。在C++中有一类特殊的作用域:类作用域。类中所有的成员都具有类作用域。如果在类C的作用域中存在不止一个名字为f的方法,那么这些方法或者具有不同的参数个数,或者具有不同的参数类型。

将4个备选答案依次与题干中给出的方法作比较,可以发现选项A给出的方法的名字、参数个数及参数类型都与题干中给出的方法相同,这就违背了函数名重载的原则,因此该方法不可能与题干中给出的方法共存于类C中。因此正确答案为A。

单项选择题
单项选择题