class ClassA {} 

题目

class ClassA {}  class ClassB extends ClassA {}  class ClassC extends ClassA {}  and:  ClassA p0 = new ClassA();  ClassB p1 = new ClassB();  ClassC p2 = new ClassC();  ClassA p3 = new ClassB();  ClassA p4 = new ClassC();  Which three are valid?()

  • A、 p0 = p1;
  • B、 p1 =p2;
  • C、 p2 = p4;
  • D、 p2 = (ClassC)p1;
  • E、 p1 = (ClassB)p3;
  • F、 p2 = (ClassC)p4;
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有如下程序:includeusing namespace std;classA{public:virtua1 voidfunc1(){cout<<“

有如下程序: #include<iostream> using namespace std; classA{ public: virtua1 voidfunc1(){cout<<“A1”;} voidfunc2(){cout<<“A2”;}}; class B:publicA{ public: void funcl(){cout<<“B1”;} void func2(){cout<<“B2”;}}; intmain(){ A*p=ne

A.B1B2

B.A1A2

C.B1A2

D.A1B2


正确答案:C
解析: 程序中B为A的派生类,由主函数入手,主函数中定义了类A的指针p指向类B。根据基类中的“vir- tual void funcl()”知道A中的funcl为虚函数,执行“p->funcl();”语句,通过指针变量调用此虚函数,此时调用的就是指针变量指向的同名函数,即派生类的funcl函数,输出B1。而fun2不是虚函数,所以执行“p->rune2();”输出为A2。

第2题:

InwhichtwocasesdoesthecompilersupplyadefaultconstructorforclassA?()

A.classA{}

B.classA{publicA(){}}

C.classA{publicA(intx){}}

D.classZ{}classAextendsZ{voidA(){}}


参考答案:A, D

第3题:

下列程序段中,A_class的成员函数Variance()可求出两数的平方差,请改写该程序段,把Variance()函数从A_class类中分离出来,用友元函数来实现该函数的功能。

class A_class {

 private:

   intx,y,t;

 public:

   A_class(int i,int j):x(i),y(j) {

     if(y>x){t=x;x=y;y=t;}

   }

 intVariance(){return x*x-y*y;}

 //其它函数从略

};

void main() {

 A_classA_obj(3,5);

 cout<<"Result:"<<A_obj.Variance()<<endl;

}


答案:

class A_class {

  private:

    intx,y,t;

  public:

   A_class(int i,int j):x(i),y(j) {

     if(y>x){t=x;x=y;y=t;}

    }

    friend?int?Variance();?

   //其它函数从略

};

  int Variance(){

    return x*x-y*y;

}

void main() {

  A_classA_obj(3,5);

 cout<<"Result:"<<A_obj.Variance()<<endl;

}


第4题:

下面程序段的输出结果为( )。 package test; public class ClassA { int x=20: static int y=6; public static void main(String args[]) { ClassB b=new ClassB; go(10); System.out.println("x="+b.x); } } class ClassB { int X; void go(int y) { ClassA a=new ClassA; x=a.Y ; } }

A.x=10

B.x=20

C.x=6

D.编译不通过


正确答案:C
C。【解析】本题考查在Java中静态变量(类变量)的用法。在题目程序段中生成了一个staticinty=6类变量,在ClassA中调用的b.go(10),只不过是在ClassB中的一个局部变量,通过调用ClassB中的90方法可以生成一个ClassA对象,并给这个新生成的对象赋以ClassA中的类变量Y的值。从main方法作为入口执行程序,首先生成一个ClassB的对象,然后b.go(10)会调用ClassA,会给X和Y赋值,X=a.Y后,X值为6,再返回去执行System.out.println("x="+b.x)语句,输出为x=6,可见,正确答案为选项C。

第5题:

有以下程序:includeusing namespace std;classA{private: int x;public: A(int a) {x

有以下程序: #include<iostream> using namespace std; class A { private: int x; public: A(int a) { x=a; } friend class B; }; class B { public: void print(A a) { a.x--; cout<<a, x<<end1; } }; int main () { A a(10); B b; b.print (a) ; return 0; } 程序执行后的输出结果是( )。

A.9

B.10

C.11

D.12


正确答案:A
解析:本题考核友元类的应用。在程序中,类B是类A的友元类,因此,在类B的所有成员函数中均可访问类A的任何成员。在main()中,先定义类A的一个对象a(10)和类B的一个对象b。然后通过对象b调用其成员函数print(),输出对象a的私有成员x的值减1即9。

第6题:

Whatproducesacompilererror?()

A.classA{publicA(intx){}}

B.classA{}classBextendsA{B(){}}

C.classA{A(){}}classB{publicB(){}}

D.classZ{publicZ(int){}}classAextendsZ{}


参考答案:D

第7题:

有如下程序:includeusing namespace std;classA{public:A(){cout<<"A";}};class B{pu

有如下程序: #include<iostream> using namespace std; classA { public: A(){cout<<"A";} }; class B{public:B(){cout<<"B";}}; class C:public A { B b; public: C(){cout<<"C";} }; int main(){C obj;return 0;} 执行后的输出结果是( )

A.ABC

B.BAC

C.ACB

D.CBA


正确答案:A

第8题:

在下面程序的横线处填上适当的语句,使程序执行后的输出结果为ABCD。 include using nam

在下面程序的横线处填上适当的语句,使程序执行后的输出结果为ABCD。

include<iostream>

using namespace std;

classA

{

public:

A(){cout<<'A';}

};

class B:______

{

public:

B(){cout<<'B';}

};

class C:______

{

public:C(){cout<<'C';}

};

class D:public B,public C

{

public:D(){cout<<'D';}

};

void main(){D obj;)


正确答案:virtual A或virtual public A或virtual private A或virtual protected A与virtual A或virtual public A或virtual private A或virtual protected A
virtual A或virtual public A或virtual private A或virtual protected A与virtual A或virtual public A或virtual private A或virtual protected A 解析:由于每执行一次A类的构造函数,都将输出一个字符A,输出结果中只有一个A,且第一个输出为A,D继承B,可知必有B继承A。由题中要求C肯定继承某个类,所以,这里的C只能是继承于A,保证输出中只有一个A,A必须为虚基类,所以本题中的空都填virtual A。

第9题:

下面程序输出的结果为 #include"iostream.h" class A { public: A(){cout<<"CLASSA"<<endl;} ~A() {} }; class B:public A { public: B(){cout<<"CLASSB"<<endl;} ~B() {} }; void main() { A * p; p=new B; B *q; q=new B; }

A.CLASS A CLASS B

B.CLASS A CLASS B CLASS B

C.CLASS A CLASS B CLASS A CLASS B

D.CLASS A CLASS B CLASS B CLASS B


正确答案:C
解析:每实例化一个类就要调用其构造函数,结束运行该实例后调用析构函数。注意:类的实例化和构造函数、析函数的调用方式和何时调用。

第10题:

下面程序输出的结果为( )。 #include"iostream.h" classA {public: A(){cOUt<<"CLASSA"<<endl;} ~A(){}}; ClaSSB:publicA {public: B(){cout<<"CLASSB"<<endl;} ~B(){}}; voidmain() {A*P; P=newB: B*q: q=newB;}

A.CLASSA

B.CLASSA CLASSBCLASSB CLASSB

C.CLASSA

D.CLASSA CLASSBCLASSB CLASSACLASSB CLASSBCLASSB


正确答案:C
C。【解析】本题考查类的继承、类的实例化和构造函数、析构函数的调用方式以及何时调用。每实例化一个类就要调用其构造函数,结束运行该实例后调用析构函数。

更多相关问题