采用面向对象程序设计语言C++/Java进行系统实现时,定义类S及其子类D。若类S中已经定义了一个虚方法int fun(int a,int b) ,则方法(44)不能同时在类S中。D中定义方法int fun(int a,int b) ,这一现象称为(45)。

题目
采用面向对象程序设计语言C++/Java进行系统实现时,定义类S及其子类D。若类S中已经定义了一个虚方法int fun(int a,int b) ,则方法(44)不能同时在类S中。D中定义方法int fun(int a,int b) ,这一现象称为(45)。

A.覆盖/重置
B.封装
C.重载/过载
D.多态
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

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

D.int f(int x,float y)


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

第2题:

若各选项中所用变量已正确定义,fun()函数中通过return语句返回一个函数值,下列选项中错误的程序是( )。

A.main() {……x=fun(2,10);……} float fun(int a,int b){……}

B.float fun(int a,int b){……} main() {……x=fun(i,j);……}

C.float fun(int,int); main() {……x=fun(2,10);……} float fun(int a,int b){……}

D.main() {float fun(int I,intj); ……x=fun(i,j);……} float fun(int a,int b){……}


正确答案:A
解析:C语言规定,函数必须先定义,后调用(函数的返回值类型为int或char时除外)。在选项A)中,调用的子函数在调用后面定义,所以不正确。在选项B)、C)中,被调用函数在主调函数之前定义,再在主函数中调用,所以是正确的;在选项D)中,在主调函数中先对子函数float fun(int i,int j)进行了定义,然后进行调用。

第3题:

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


正确答案:A

第4题:

包容类Contain和内嵌类Embed定义如下:include class Contain{private:int x;protec

包容类Contain和内嵌类Embed定义如下: #include <iostream.h> class Contain { private: int x; protected: int z; public: class Embed { private: int y; public: Embed(){y=100;} int Embed_Fun(); }MyEmbed; int Contain_Fun(); }; 对上面的定义,正确的描述是( )。

A.定义类Embed对象的语句是:Contain::Embed embed;

B.类Contain的成员函数Contain_Fun()中可以用MyEmbed.y的方式访问类Embed的私有成员y

C.类Embed的成员函数Embed_Fun()中可以直接访问类Contain和的私有成员x

D.类Embed的成员函数Embed_Fun()中可以直接访问类Contain的保护成员z


正确答案:A

第5题:

已知如下类定义: class Base { public Base (){ //... } public Base ( int m ){ //... } protected void fun( int n ){ //... } } public class Child extends Base{ // member methods } 如下哪句可以正确地加入子类中?()

A.private void fun( int n ){ //...}

B.void fun ( int n ){ //... }

C.protected void fun ( int n ) { //... }

D.public void fun ( int n ) { //... }


正确答案:CD

第6题:

( 12 ) “ 图形 ” 类 Shape 中定义了纯虚函数 CalArea() ,“ 三角形 ” 类 Triangle 继承了类Shape ,请 将

Triangle 类中的 CalArea 函数补充完整。

class Shape{

public:

virtual int CalArea()=0;

}

class Triangle: public Shape{

public:

Triangle{int s, int h}: side(s),height(h) {}

【 12 】 { return side*height/2 ; }

private:

int side;

int height;

};


正确答案:

第7题:

以下程序中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是

A.main( ) { int *p; fun(p); ┆ } int fun(int *p) { int s; p=&s;}

B.main( ) { int *p; fun(&p); ┆ } int fun(int **p) { int s; *p=&s;}

C.#include<stdlib.h> main( ) { int *p; fun(&p); ┆ } int fun(int **p) { *p=(int*)malloc(2);}

D.#include<stdlib.h> main( ) { int *p; fun(p); ┆ } int fun(int *p) { p=(int*)malloc(sizeof(int));}


正确答案:D

第8题:

若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选项中错误的程序是

A)

main()

{ …… x=fun(2,10); …… }

float fun(int a,int b){ …… }

B)

float fun(int a,int b){ …… }

main()

{ …… x=fun(i,j); …… }

C)

float fun(int,int);

main()

{ …… x=fun(2,10); …… }

float fun(int a,int b) { …… }

D)

main()

{ float fun(int i,int j);

…… x=fun(i,j); …… }

float fun(int a,int b){ …… }


正确答案:A
(20)A) 解析 : 在调用子函数时 , 应对其进行说明。选项 A) 中 , 调用时 , 没有对子函数进行说明 。选项 B) 、 C) 中被调用函数在主调函数之前定义 , 不用说明 ; 选项 D) 中在主调函数中对被调用函数的返回值类型进行了说明。

第9题:

类A有如下成员函数: int A::fun(double x){return (int) x/2;} int A::fun(int x){return x*2;} 设a为类A的对象,在主函数中执行语句int s=a.fun(6.0)+a.fun(2)后的s值为7。()

此题为判断题(对,错)。


正确答案:正确

第10题:

以下程序段中,能够通过调用函数fun(),使main()函数中的指针变量p指向一个合法的整型单元的是( )。

A.main() {int*p; fun(p); … } int fun(int*p) {int s; p=&s; }

B.main {int*p fun(&p); … } iht fun(int**p) {int s; *p=&s;}

C.main() {int*p; fun(&p); } int fun(int**p) {*p=(int*)malloc(2);}

D.main() {int*p; fun(p); } int fun(int*p) {p=(int*)malloc(sizeo(int));}


正确答案:C
解析:在选项A中,main()函数中定义了一个指针变量p,调用fun()函数时把p传给形参p,在函数中让p指向局部变量s,由于函数调用返回后,局部变量s将被释放,因此无法实现让实参p指向一个整型单元,故选项A错误。选项B中实现的也是让实参p,指向一个在函数fun()中定义的局部变量s,因此也是错误的;选项C在函数fun()中分配了两个字节的内存单元并把首地址赋值给形参p指向的变量,即main()函数的指针变量p中,由于整型变量占两个字节,因此,选项C是正确的;选项D在主函数中定义了一个指针地址变量p,并把指针变量的值传给形参变量p,在fun()函数中分配了一个整型单元并把首地址赋值给行参指针变量p,由于C语言中变量作为参数是传值的,所以并没有改变对应实参指针变量的值,因此选项D也是错误的。所以,C选项为所选。

更多相关问题