下列程序的输出结果是______。 include<iostream.h> class base { int x,y; public: base(int i,i

题目
下列程序的输出结果是______。 include class base { int x,y; public: base(int i,i

下列程序的输出结果是______。

include<iostream.h>

class base

{

int x,y;

public:

base(int i,int j){x=i;y=j;}

virtual int add( ){return x+y;}

};

class three:public base

{

int z;

public:

three(int i,int j,int k):base(i,j){z=k;)

int add( ){return(base::add( )+z);}

};

void main( )

{

three*q=new three(10,20,30);

cout<<q->add( )<<endl;

}

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

第1题:

( 31 )有如下程序

#include <iostream>

using namespace std;

Class Base{

public:

Base(int x=0):valB(x) {cout<<valB;}

~Base() {cout<<valB;}

private:

int valB;

};

class Derived:public Base{

public:

Derived(int x=0,int y=0):Base(x),valD(y){cout<<valD;}

~Derived() {cout<<valD; }

private:

int valD;

};

int main(){

Derived obj12(2,3);

retuen 0;

}

运行时的输出结果是

A ) 2332

B ) 2323

C ) 3232

D ) 3223


正确答案:A

第2题:

有如下程序:includeusing namespace std;class Base{int x;public:Base(int n=0):x(n

有如下程序: #include<iostream> using namespace std; class Base{ int x; public: Base(int n=0):x(n){cout<<n;} int getX( )const{return x;} }; class Derived:public Base{ int y; public: Derived(int m,int n):y(m),Base(n){tout<<m;} Derived(int m):y(m){cout<<m;} }; int main( ){ Derived dl(3),d2(5,7); return 0; } 程序的输出结果是

A.375

B.357

C.0375

D.0357


正确答案:C
解析:有如下程序:  #includeiostream>  using namespace std;  class Base{  int x;  public:  Base(int n=0):x(n){coutn;}  int getX( )const{return x;}  };  class Derived:public Base{  int y;  public:  Derived(int m,int n):y(m),Base(n){toutm;}  Derived(int m):y(m){coutm;}  };  int main( ){  Derived dl(3),d2(5,7);  return 0;  }  程序的输出结果是  

第3题:

下列程序的输出结果是非曲直【 】。includeclass base{ int x, y;public: base(int i,

下列程序的输出结果是非曲直【 】。

include<iostream, h>

class base

{

int x, y;

public:

base(int i, int j){x=i; y=j;}

virtual int add(){return x+ y;}

};

class three: public base

{

int z;

public:

three(int i, int j, int k) :base(i, j){z=k; }

int add() { return (base:: add()+z); }

};

void main()

{

three * q=new three(lO,20,30);

cout<<q->add()<<end1;

}


正确答案:60
60 解析:本题考察继承中子类对父类的继承方式,注意子类的add成员函数,它直接使用了父类的成员函数进行运算。

第4题:

有如下程序:includeusing namespace std;class Base{public:Base(int x=0){cout<

有如下程序: #include<iostream> using namespace std; class Base{ public: Base(int x=0){cout<<x;} }; class Derived:public Base{ public: Derived(int x=0){cout<<x;} private: Base val; }; int main( ){ Derived d(1); return 0; } 程序的输出结果是

A.0

B.1

C.01

D.001


正确答案:D
解析:派生对象在创建时先调用基类的构造函数,然后调用派生类的构造函数;撤销对象时,先调用派生类的构造函数,然后调用基类的构造函数。当类中出现其他类对象时,在初始化时先调用该对象的类的构造函数创建该对象。

第5题:

在下面的程序的横线处填上适当的语句,使该程序的输出为12。

include 〈iostream〉

using namespace std;

class Base

{

public:

int a;

Base(int i) { a=i;}

};

class Derived : public Base

{

int a;

public:

Derived(int x) : Base(x),b(x+1) {}

void show()

{

【 】; //输出基类数据成员a的值

cout〈〈b〈〈end1;

}

};

int main()

{

Derived d(1);

d.show();

return 0;

}


正确答案:cout〈〈Base::a
cout〈〈Base::a 解析:本题考核作用域分辨符“::”的使用。

第6题:

在下面程序的横线处填上适当的语句,使该程序的输出为12。 include using namespace st

在下面程序的横线处填上适当的语句,使该程序的输出为12。

include <iostream>

using namespace std;

class Base

{

public:

int a;

Base(int i){a=i;}

};

class Derived: public Base

{

int a;

public:

Derived(int x): Base(x),b(x+l){}

void show()

{

【 】;∥输出基类数据成员a的值。

cout<<b<<end1;

}

};

int main()

{

Derived d(1);

d.show();

return 0;

}


正确答案:coutBase::a
coutBase::a 解析:本题考核作用域分辨符号的使用。作用域分辨符号是“::”,它可以用来限定要访问的成员所在的类的名称。一般来说,在派生类中对基类成员的访问应该是惟一的。但是,多继承情况下可能造成对基类中某个成员的访问出现不惟一的情况,通过使用对象作用域分辨符可以解决这种对基类成员访问的二义性问题。题中派生类Derived与基类Base定义了数据成员a,所以要访问基类数据成员可以通过作用域分辨符来实现。

第7题:

有如下程序: include using namespace std; class Base { public:

有如下程序: #include <iostream> using namespace std; class Base { public: Base(int x=0) { cout<<x; } } class Derived: public Base{ public: Derived(int x=0) { cout<<x; } private: Base val; }; int main() { Derived d(1); return 0; }程序的输出结果是

A.0

B.1

C.1

D.1


正确答案:D
解析:本题考查的知识点是:类的构造。建立一个类的对象时,构造函数的执行顺序如下:
①执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);
②执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下):(如果一行声明了多个对象,则还要遵循自左向右)
③执行自身的构造函数。
本题Derived类继承于Base类,所以首先会构造基类Base,但Derived类的构造函数没有初始化列表,所以将调用Base类的默认构造函数,输出一个0。接下来由于它的成员中还定义了一个Base类的对象,而构造函数也没有显示初始化这个对象,所以再次调用Base类的默认构造函数输出一个0。最后构造自身,因为主函数中传入了构造参数1,所以构造自身时输出了一个1。故最终输出结果为001,应该选择 D。

第8题:

在下面的程序的横线处填上适当的语句,使该程序的输出为12。 include using namespace

在下面的程序的横线处填上适当的语句,使该程序的输出为12。

include<iostream.h>

using namespace std;

class Base

{

public:

int a,b;

Base(int i){a=i;}

};

class Derived:public Base

{

int a;

public:

Derived(int x):Base(x),b(x+1){};

void show()

{

______;//输出基类数据成员a的值

cout<<b<<endl;

}

};

int main()

{

Derived d(1);

d.show();

return 0;


正确答案:coutBase::a
coutBase::a 解析:此题考查的是基类和派生类的构造函数。派生类构造函数的执行顺序为:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容。此题要求结果是输出12,分析题目,首先调用基类的构造函数,然后是调用子对象的构造函数,横线处要求输出基类成员a的值,填入coutBase::a即可。

第9题:

为完成下面的程序,应在划线处填入的语句是includeusingnamespace std;class Base{pri

为完成下面的程序,应在划线处填入的语句是 #include<iostream> using namespace std; class Base { private: int x; public: Base (int i) { x=i; } ~Base(){} }; class Derived:public Base { public: ______________//完成类Derive构造函数的定义 }; int main() { Derived Obj; return 0; }

A.Derived(int i):Base(i){}

B.Derived(){}

C.void Derived (int i):Base(i){}

D.Derived(int i){Base(i);}


正确答案:A
解析:本题考核派生类中的构造函数。程序中,类Derived是基类Base的公有派生。在类Derived的构造函数应该包括调用基类构造函数使基类的数据成员得以初始化。

第10题:

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

include<iostream>

using namespace std;

class Base{

public:

int m,n;

Base(int i,int j):m(i),n(j){}

};

class Derived:public Base{

public:

int m,k,;

Derived(int i,int j):Base(i,j),m(i+1),k(j+1){}

};

int main(){

Derived d(1,5);

cout<<d.m<<d.k<<d.n;

return 0;

}


正确答案:265
265 解析:本题主要考查对基类与派生类的重名成员的掌握。如果在派生类中定义了与基类同名数据成员,那么在派生类中对重名成员访问时,屏蔽基类的同名成员。如果要在派生类中使用基类的同名成员,可以显式地使用作用域运算符指定:类名::成员。

更多相关问题