有如下程序:#include<iostream>using namespace std;Class TestClass{int a;public:TestClass(in

题目
有如下程序:includeusing namespace std;Class TestClass{int a;public:TestClass(in

有如下程序: #include<iostream> using namespace std; Class TestClass {int a; public: TestClass(int x){a=x;} void show(){cout<<a;}}; class TestClass1:public TestClass {int b; public: TestClass1(int i):TestClass(i+1),b(i){} voi

A.5

B.1

C.0

D.2

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

第1题:

有如下程序:includeusing namespace std;classTestClass{protected:TestClass(){cout

有如下程序: #include<iostream> using namespace std; classTestClass{ protected: TestClass(){cout<<'x';} TestClass(char c){cout<<c;} }; class TestClass1:public TestClass{ public: TestClass1(char C) {cout<<c;} }; int main(){ TestClass1 d1('y'); return 0; } 执行这个程序,屏幕上将显示输出( )。

A.y

B.yx

C.xy

D.yy


正确答案:C
解析:程序中的类TestClass为基类,TestClassl为TestClass的派生类。由main主函数入手,定义TestClassl类型的对象d1,参数值为y。TestClass1类继承TestClass,所以主函数中“TestClass1dl('y');”语句首先调用“TestClass1(charc){coutc;}”然后调用基类中的“TestClass(){cout'x';}”输出x,然后执行“TestClass(charc){coutc;}”输出y,即答案为“xy”。

第2题:

有下列程序:includeusing namespace std;class TestClass{protected:TestClass(){cou

有下列程序: #include<iostream> using namespace std; class TestClass{ protected: TestClass(){cout<<'x';} TestClass(char c){cout<<c;} }; class TestClassl:public TestClass{ public: TestClassl(char c){cout<<c;}

A.y

B.yx

C.xy

D.yy


正确答案:C
解析: 程序中的类TestClass为基类,TestClass1为TestClass的派生类。由main主函数入手,定义TestClass1类型的对象d1,参数值为y。 TestClass1类继承TestClass,所以主函数中“TestClass1 d('y');”语句首先调用“TestClass1(char c){coutc;}”,然后调用基类中的 “TestClass(){cout《'x';}输出x,最后执行“TestClass(char c){coutc;}”,输出y,即答案为“xy”。

第3题:

有如下程序:includeincludeusing namespace std;class TestClass{public;T

有如下程序: #include<iostream> #include<iomanip> using namespace std; class TestClass{ public; TestClass (){cout<<'A';} TestClass(char C){cout<<c;) ~TestClass (){cout<<'B';} }; int main(){ TestClass p1,*p2; p2=new TestClass('X'); delete p2; return 0; } 执行这个程序的结果是( )。

A.ABX

B.ABXB

C.AXBB

D.AXB


正确答案:C
解析:在定义对象p1时由系统自动调用构造函数TestClass(),输出字母A;用new创建单个对象TestClass('X')时,要根据参数调用相应的构造函数TestClass(char C),输出字母X;在执行delete时,系统会自动调用析构函数~TestClass(),输出字母B,当对象的生存周期即将结束时系统会自动调用析构函数~TestClass(),输出字母B。

第4题:

有如下程序:includeusing namespace std;{TestClass(){cout<<"BB";fun()}void fun(){

有如下程序: #include<iostream> using namespace std; { TestClass(){cout<<"BB";fun()} void fun(){cout<<"Bf";} }; class TestClass1:public TestClass { public: TestClass1(){cout<<"DD";} void fun(){cout<<"Df";} }; int main() {TestClass1 d; return 0;} 执行上面的程序将输出( )。

A.BBBfDD

B.BBDfDDDf

C.DD

D.DDBBBf


正确答案:A

第5题:

有如下程序:includeusing namespace std;class TestClass{private;char c;public;Tes

有如下程序: #include<iostream> using namespace std; class TestClass { private; char c; public; TestClass (char n):c(n){} ~TestClass () { cout<<c; } }; class TestClass1:public TestClass { Private: char c; public: TestClass1(char n):TestClass (n+1),c(n){} ~TestClass1() { cout<<c; } }; int main() { TestClass1 obj('x'); return 0; } 执行上面的程序输出( )。

A.xy

B.yx

C.x

D.y


正确答案:A
解析:题目中程序TestClass为基类,TestClass1为派生类。在主函数中定义TestClass1对象obj('x'),“TestClass1(charn):TestClass(n+1),c(n){}”,所以先输出x,然后调用基类构造函数,'x'+1='y',所以输出y,即答案为xy。

第6题:

有下列程序:include using namespace std; class TestClass1 { public: TestClass1(){

有下列程序:

include<iostream>

using namespace std;

class TestClass1

{

public:

TestClass1(){cout<<"A";}

};

class TestClass2<public:TestClass2(){cout<<"B";}

};

class TestClass3:public TestClass1{

TestClass2 b;


正确答案:ABC
ABC 解析: 主函数中定义TestClass3对象。obj,其中TestClass3继承于TestClass1,先初始化基类构造函数,所以输出A。然后在TestClass3中定义TestClass2对象b,输出B,最后派生类的构造函数输出C。所答案为ABC。

第7题:

有如下程序:includeusing namespqce Std;class TestClass{private;Char C;public;Tes

有如下程序: #include<iostream> using namespqce Std; class TestClass { private; Char C; public; TestClass(char n):c(n){} ~TestClass() { cout<<c; }; class TestClassl:public TestClass { private: Char C; public:

A.xy

B.yx

C.x

D.y


正确答案:A
解析: 本题中TestClass为基类,TestClassl为派生类。在主函数中定义TestClassl对象obj(‘x’),“TestClassl(char n):TestClass(n+1),c(n){}”,所以选输出x,然后调用基类构造函数,’x’+1=‘y’,所以输出y,即答案为xy。

第8题:

有如下程序:inCludeusing namespace std;Class TestClass{public:virtUal void furll

有如下程序: #inClude<iostream> using namespace std; Class TestClass {public: virtUal void furll() {cout<<“funlTestclass”;} virtual void fun2() {cout<<“{fun2TestClass”;}}; class TestClassl:public TestClass {void fun() {cout<<“fu

A.fun1TestClass1 fun2TestClass

B.fun1TestClass1 fun2TestClass1

C.fUnlTestClass fun2TestClass

D.funlTe3tClass fun2TestClassl


正确答案:A
解析: TestClass为基类,TestClassl是TestClass的派生类。基类中的fun1和fun2枚定义为虚函数,C++规定,当一个成员函数被声明为虚函数后,其派生类中的同名函数都自动成为虚函数,所以派生类中的fun1和fun2也是虚函数。本题从main主函数入手,首先定义了TestClass类型的对象obj1和指针p,然后又定义了TestClas1钓对象obj2。指针指向对象obj2,然后调用其成员函数funl(),即输出“funlTestClassl”。

第9题:

有如下程序: include using namespace std; class TestClass{ int k; public: TestCla

有如下程序:

include<iostream>

using namespace std;

class TestClass{

int k;

public:

TestClass(int x=1):k(x){}

~TestClass O{cout<<k;}

};

int main(){

TestClass a[]={TestClass(3),TestClass(3),TestClass(3)};

TestClass *p=new TestClass[2];

delete []p;

return ():

}

这个程序的输出结果是______。


正确答案:11333
11333 解析:定义TestClass型数组a时,将导致TestClass的构造函数被执行三次,每次执行时,其传入参数为3,定义TestClass指针p时,将执行两次默认构造函数,其参数为1,执行"delete []p"时,将执行TestClass的构造函数,输出p[0].k,p[1].k(两者均为1) ,在程序运行结束后,将释放局部变量,从而导致数组a中的三个元素被析构,输出a[0],a[1],a[2]中的值(均为3) 。