实验六 继承与派生.pptx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
继承与组合一、实验目的了解继承在面向对象程序设计中的重要作用。进一步理解继承与派生的概念。掌握通过继承派生出一个新的类的方法。了解虚基类的作用和用法。掌握类的组合二、实验内容1.请先阅读下面的程序,写出程序运行的结果,然后再上机运行程序,验证自己分析的结 果是否正确。(1)#include iostream using namespace std; class A{public:A(){coutA::A() called.\n;}virtual ~A(){coutA::~A() called.\n;}};class B:public A{public:B(int i)coutB::B() called.\n; buf=new char[i];{}virtual ~B(){ delete []buf; coutB::~B() called.\n;}private:char *buf;};void fun(A *a){ coutMay you succeed!endl; delete a;}int main(){A *a=new B(15); fun(a);return 0;}1、(1)程序运行结果:A::A() called.B::B() called. May you succeed! B::~B() called.A::~A() called.(2)#includeiostream using namespace std; class A{public:A(int a,int b):x(a),y(b){ coutA constructor...endl; } void Add(int a,int b){ x+=a;y+=b;}void display(){ cout(x,y);}~A(){coutdestructor A...endl;} private:int x,y;};class B:private A{ private:int i,j; A Aobj;public:B(int a,int b,int c,int d):A(a,b),i(c),j(d) ,Aobj(1,1){ coutB constructor...endl;}void Add(int x1,int y1,int x2,int y2){A::Add(x1,y1);i+=x2; j+=y2;}void display(){A::display(); Aobj.display();cout(i,j)endl;}~B(){coutdestructor B...endl;}};int main(){B b(1,2,3,4);b.display(); b.Add(1,3,5,7);b.display(); return 0;}(2)程序运行结果:A constructor... A constructor... B constructor... (1,2) (1,1) (3,4)(2,5) (1,1) (8,11)destructor B... destructor A... destructor A...(3)#includeiostream using namespace std; class A{public:A(int a):x(a){ coutA constructor...xendl; } int f(){return ++x;}~A(){coutdestructor A...endl;} private:int x;};class B:public virtual A{ private:int y;A Aobj; public:B(int a,int b,int c):A(a),y(c),Aobj(c){ coutB constructor...yendl;} int f(){A::f();Aobj.f(); return ++y;}void display(){ coutA::f()\tAobj.f()\tf()endl; }~B(){coutdestructor B...endl;}};class C:public B{ public:C(int a,int b,int c):B(a,b,c),A(0){ coutC constructor...endl;}};class D:public C,public virtual A{ public:D(int a,int b,int c):C(a,b,c),A(c){ coutD constructor...endl;}~D(){coutdestructor D...endl;}};int main(){D d(7,8,9);d.f();d.

文档评论(0)

万寿无疆 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档