C++多态练习题

C++多态练习题

1.阅读下面的程序,写出程序运行的结果。

程序1:

#include <iostream>

using namespace std;

class Base

{public:

Base(int m){n=m++; }

virtual void g1(){cout<<"Base::g1()..."<<n<<endl; g4();}

virtualvoid g2(){cout<<"Base::g2()..."<<++n<<endl;g3();}

void g3(){cout<<"Base::g3()..."<<++n<<endl; g4();}

void g4(){cout<<"Base::g4()..."<<++n<<endl;}

protected:

int n;

};

class Derive:public Base

{public:

Derive(int n1,int n2):Base(n1){ j=n2;}

void g1(){cout<<"Deri::g1()..."<<++n<<endl;g2();}

void g3(){cout<<"Deri::g2()..."<<++n<<endl;g4();}

private:

int j;

};

int main(){

Derive Dobj(1,0);

Base Bobj=Dobj;

Bobj.g1();

cout<<"------------------"<<endl;

Base *bp=&Dobj;

bp->g1();

cout<<"------------------"<<endl;

Base &bref=Dobj;

bref.g1();

cout<<"------------------"<<endl;

Dobj.g1();

return 0;

}

程序2:

#include <iostream>

using namespace std;

class A

{public:

A(){cout<<"A::A() called.\n";}

virtual ~A(){cout<<"A::~A() called.\n";}

};

class B:public A

{public:

B(inti)

C++多态练习题相关文档

最新文档

返回顶部