有以下程序:#include<iostream>using namespace std;Class A{public:A(){tout{("A"}};classB{pub

题目
有以下程序:includeusing namespace std;Class A{public:A(){tout{("A"}};classB{pub

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

A.CBA

B.BAC

C.ACB

D.ABC

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序的执行结果为______。include class A {public:A(){cout<<“a”;} ~A(){cout<<

以下程序的执行结果为______。

include<iostream.h>

class A

{public:A(){cout<<“a”;}

~A(){cout<<“b”;}};

class B:public A

{public:

B(){cout<<“c”;)

~B(){cout<<“d”;}};

void main()

{B b;}


正确答案:acdb。
acdb。 解析: 本题考查在继承中构造函数和析构函数的调用顺序。先调用基类的构造函数,再调用派生类的构造函数,调用析构函数时的顺序是先调用派生类的析构函数,后调用基类的析构函数。

第2题:

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

A.CLASS A CLASS B CLASS B CLASS B

B.CLASS A CLASS B CLASS A CLASS B

C.CLASS A CLASS B CLASS B

D.CLASS A CLASS B


正确答案:C

第3题:

有以下程序:include using namespace std;class A{public: virtual void show() {cout

有以下程序:

include <iostream>

using namespace std;

class A

{

public:

virtual void show()

{

cout<<"A";

}

};

class B : public A

{

public:

void show()

{

cout << "B";

}

};

void display( A * obj )

{

obj-> show();

}

int main ( )

{

A demol;

B demo2;

display( & demol );

display( & demo2 );

return 0;

}

执行后的输出结果为【 】。


正确答案:AB
AB 解析:本题考核赋值兼容原则以及派生与继承的应用。题中函数display()形参类型为类A,执行语句“display(&demo1);”则输出A。执行语句“display(&dem02);”时,由于show()函数为虚函数,所以调用类B中show()函数,输出B。所以最后结果为AB。

第4题:

请将如下程序补充完整,使得输出结果为:bbaa。 include using naluespace std; class

请将如下程序补充完整,使得输出结果为:bbaa。

include<iostream>

using naluespace std;

class A{

public:

______{eout<<"aa";}

};

class B:public A{

public:

~B( ){eont<<"bb";}

};

int ulain( ){

B*P=new B;

delete P;

return 0;

}


正确答案:~A( )
~A( ) 解析:派生类和基类的析构函数调用顺序是先调用派生类的析构函数,然后调用基类的析构函数,打印“bb”说明已经在调用派生类的析构函数,则要继续打印“aa”,显然就只有定义在基类的析构函数中去打印,故答案为~A( )。

第5题:

有下列程序:includeusing namespace std;class ONE{ public:virtual void f(){COUt<<"

有下列程序:

include<iostream>

using namespace std;

class ONE

{

public:

virtual void f(){COUt<<"1";}

};

c1assTWO:public ONE

{

public:

TWO(){cout<<"2";}

};

class THREE:public TWO

{

pub


正确答案:2213
2213 解析: 此题考查的是派生类的构造和析构函数。建立TWO的对象bb时,调用TWO的构造函数,输出“2”;THREE类又派生于TWO类,所以建立THREE类的对象cc时又会输出“2”;ONE类的对象指针p指向了THREE类的ONE类的虚函数f(),输出“1”;最后调用THREE类的f(),输出“3”。故最终的输出结果是2213。

第6题:

有以下程序: include class A { intx; public: A(int a) { x=a;} friend class B;

有以下程序:

include<iostream.h>

class A

{

int x;

public:

A(int a)

{

x=a;

}

friend class B;

}

class B{

public:

void print(A a){

a. x--;

cout<<a.x<<end1;

}

};

void main()

{

A a(10);

B b;

b.print(a) ;

}

程序执行后的输出结果是【 】。


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

第7题:

在下面程序中,括号里应填()。 include using namespace std; class A { public: void

在下面程序中,括号里应填( )。 #include <iostream> using namespace std; class A { public: void fun( ) { cout << "Hello" << endl; } }; class B:: public A { void fun( ) { ( ) //调用基类的函数fun( ) tout << "HI" << endl; } };

A.fun()

B.A. fun()

C.A::fun()

D.A->fun(


正确答案:C
解析:调用格式;类名>::成员名>或者类名>::成员名>(参数表>)。

第8题:

下面程序输出的结果是【 】。 include using namespacc std; class A { public:void sho

下面程序输出的结果是【 】。

include <iostream>

using namespacc std;

class A {

public:

void show(){tout<<"A!";}

};

class B: public A{

public:

virtual void show(){cout<<"B!";}

};

class C: public B{

public:

virtual void show(){cout<<"C!";}

};

void show_info(A *i){i->show();}

void main(){

A ia;B ib;C ic;show_info(&ia); show_info(&ib);show_info(&ic);

}


正确答案:A! B! C!
A! B! C! 解析:由于基类中声明了虚函数,故基类的引用可以调用不同类的虚函数。

第9题:

有以下程序:includeusing namespace std;class A{private:int a;public:A(int i){a=i

有以下程序: #include<iostream> using namespace std; class A {private: int a; public: A(int i) {a=i;} void disp() {cout<<a<<“,”;}}; class B {private: int b; public: B(int j) {b=j;} void disp() {cout<<b<<“,”;

A.10,10,10

B.10,12,14

C.8,10,12

D.8,12,10


正确答案:D
解析: 本题中,派生类C具有多重继承关系,所以在派生类C的构造函数中应该包含基类A和B的成员初始化列表。