下面程序的运行结果是#include<iostream.h>class base{protected:int a;public:base( ){cout<<"0

题目
下面程序的运行结果是includeclass base{protected:int a;public:base( ){cout<<"0

下面程序的运行结果是 #include<iostream.h> class base{ protected: int a; public: base( ){cout<<"0";} }; class basel:virtual base { public: base1( ){cout<<"1";} }; class base2:virtual base{ public:

A.123

B.3120

C.312

D.3012

参考答案和解析
正确答案:A
解析:本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下面程序的运行结果是includeclass base{protected: int a;public: base(){cout <<

下面程序的运行结果是 #include<iostream.h> class base{ protected: int a; public: base(){cout <<"0";} }; class basel:virtual base{ public: basel () {cout <<"1";} }; class base2:virtual base{ public: base2(){cout <<"2";} }; class derived:public basel,public base2{ public: derived(){cout <<"3";} }; void main() { derived obj; cout <<end1; }

A.123

B.3120

C.312

D.3012


正确答案:A
解析:本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。

第2题:

下面程序的运行结果是( )。 #include<iostream.h> class base{ protected: int a; public: base{cout<<”0”;} }; class basel:virtual base{ public: basel{cout<<”1”;} }; class base2:virtual base i public: base2{cout<<”2”;} }; class derived:public basel,public base2{ public: derived{cout<<”3”;} }; void main derived obj; cout<<endl:

A.0123

B.3120

C.0312

D.3012


正确答案:A
本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。

第3题:

下面程序的运行结果是( )。 #include<iostream.h> classbase{ protected: inta; public: base(){cout<<"0";} }; classbasel:virtualbase{ public: basel(){cout<<"1";} }; classbase2:virtualbase{ public: base2(){cout<<"2";} }; classderived:publicbasel,publicbase2{ public: derived(){cout<<"3";} }; voidmain() { derivedobj; eout<<endl: }

A.0123

B.3120

C.O312

D.3012


正确答案:A
A。【解析】本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。

第4题:

下面程序的输出结果是【】。include using namespace std; class base { protected: int

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

include <iostream>

using namespace std;

class base

{

protected:

int a;

public:

base(){cout<<"0":}

};

class basel: virtual public base

{

public:

base1(){ cout<<"1";}

};

class base2 : virtual public base

{

public:

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

};

class derived : public base1,public base2

{

public:

derived () {cout<<"3"; }

}

int main ()

{

derived obj;

cout<<end1;

return 0;

}


正确答案:0123
0123 解析:本题考核含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最有调用派生类自己的构造函数.题中先调用base的构造函数,然后调用base1、base2的构造函数,最后调用derived的构造函数。

第5题:

下列程序的运行结果是______。include class Base { public: void f(int x){cout<<“B

下列程序的运行结果是______。

include<iostream.h>

class Base

{

public:

void f(int x){cout<<“Base:”<<x<<endl;}

);

class Derived:public Base

{

public:

void f(char*str){cout<<“Derived:”<<str<<endl;}

};

void main(void)

{

Base*pd=ne


正确答案:Base:97。
Base:97。 解析: 本题主要考查两个知识点,一是基类指针可以指向派生类对象,并可以访问派生类的所有成员。二是在函数重载中进行隐式类型转换。如pd->f(‘a’);系统到底调用哪个重载函数呢?实参既不是派生类中的形参,也不是基类中f函数的形参类型。此时系统根据就近原则和从高优先级到低优先级的规则尝试隐式转换。单字符更接近整数,故调用的是基类的f函数。

第6题:

有如下程序:includeusing namespace std;class Base{protected:Base(){cout<<'Base';

有如下程序: #include<iostream> using namespace std; class Base{ protected: Base(){cout<<'Base';} Base(char c){cout<<c;} }; class Derived:public Base{ public: Derived(char c){cout<<c;} }; int main(){ Derived d('Derived'); return 0; } 执行这个程序屏幕上将显示输出( )。

A.Derived

B.DerivedBase

C.BaseDerived

D.DerivedDerived


正确答案:C
解析:派生类Derived由基类Base公有派生,在派生类构造函数声明时系统会自动调用基类的缺省构造函数。调用Derived d('Derived');后,执行类Derived构造函数的Derived(char c),系统自动调用基类的缺省构造函数Base(),输出字母Base;再执行派生类的构造函数Derived(char c),输出字母Derived。

第7题:

下面程序的运行结果是()。includeclass base{protected:int a;public:base(){cout<<

下面程序的运行结果是( )。 #include<iostream.h> class base{ protected: int a; public: base(){cout<<“0”;} }; Class basel:Virtual base{ public: basel(){cout<<“1”;} }; Class base2:virtual base{ public: base2(){cout<<“2”;)

A.0123

B.3120

C.0312

D.3012


正确答案:A
解析: 本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。

第8题:

下面程序的运行结果是 include class base{ protected: int a; public: base( ) {c

下面程序的运行结果是

#include<iostream.h>

class base{

protected:

int a;

public:

base( ) {cout < < "0";}

};

class base l: virtual base{

public:

base l ( ) {cout < <"1";}

};

class base 2: virtual base{

public:

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

};

class derived: public base 1, public base2{

public:

derived( ) {cout < < "3";}

};

void main( )

{

derive obj;

cout < < endl;

}

A.0123

B.3120

C.0312

D.3012


正确答案:A
解析:本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。

第9题:

下面程序的运行结果是

#include

class base

{

protected:

int a;

public:

base(){ cout <<”0”;}

class basel:virtual base

}

public:

base 1(){cout <<”1”;}

};

class base2:virtual base

{

public:

base2(){cout <<”2”;(

};

class derived:public base1,public base2

{

public:

derived(){cout <<”3”;}

};

void main()

{

derived obj;

cout <

}

A.0123

B.3120

C.0312

D.3012


正确答案:A