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

admin2019-06-12  22

问题 在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

解析 该题其实考查的是形参和函数重载。编译器视函数“int f(int a,int b)”和“int f(int x,int y)”为同一个函数,尽管两者的形参名称不一样,编译器只管形参的类型是不是一样。在VC 6.0中,若在同一个类中定义这两个函数,编译错误信息中会提示“member function already defined or declared”,即成员函数已定义或声明了。对于在同一可访问区内(如同一个类中)被声明的几个具有不同参数列(参数的类型、个数、顺序不同)的同名函数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制叫重载,重载不关心函数的返回值类型。这里,“重载”的“重”的意思不同于“轻重”的“重”,它是 “重复”、“重叠”的意思。可见,B、C、D均与“int f(int a,int b)”构成重载。另外,值得特别强调的是,重载不关心函数的返回值类型,在同一个类中,也不允许“int f(int a,int b)”、“float f(int a,int b)”两者同时存在,这两者不构成重载,编译器无法识别。
转载请注明原文地址:https://jikaoti.com/ti/Psf7FFFM
0

最新回复(0)