C++程序设计 清华大学课件 - c++ 第7讲.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 有虚基类时的构造函数举例 虚 基 类 #include iostream using namecpace std; class B0 //声明基类B0 { public: //外部接口 B0(int n){ nV=n;} int nV; void fun(){coutMember of B0endl;} }; class B1: virtual public B0 { public: B1(int a) : B0(a) {} int nV1; }; class B2: virtual public B0 { public: B2(int a) : B0(a) {} int nV2; }; class D1: public B1, public B2 { public: D1(int a) : B0(a), B1(a), B2(a){} int nVd; void fund(){coutMember of D1endl;} }; void main() { D1 d1(1); d1.nV=2; d1.fun(); } * * 综合举例 例7-10(课后阅读) 这个程序有两点不足: ①基类的成员函数pay() 的函数体为空,在实现部分仍要写出函数体,显得冗余。 ②在main()函数中,建立了四个不同类的对象,对它们进行了类似的操作,但是却重复写了四遍类似的语句,程序不够简洁。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 单一继承时的构造函数 派生类名::派生类名(基类所需的形参,本类成员所需的形参):基类名(参数表) { 本类成员初始化赋值语句; }; 派生类的构造、析构函数 * 单一继承时的构造函数举例 #includeiostream using namecpace std; class B{ public: B(); B(int i); ~B(); void Print() const; private: int b; }; 派生类的构造、析构函数 B::B() { b=0; coutBs default constructor called.endl; } B::B(int i) { b=i; coutBs constructor called. endl; } B::~B() { coutBs destructor called.endl; } void B::Print() const { coutbendl; } * class C:public B { public: C(); C(int i,int j); ~C(); void Print() const; private: int c; }; * C::C() { c=0; coutCs default constructor called.endl; } C::C(int i,int j):B(i) { c=j; coutCs constructor called.endl; } C::~C() { coutCs destructor called.endl; } void C::Print() const { B::Print(); coutcendl; } void main() { C obj(5,6); obj.Print(); } * * 多继承时的构造函数 派生类名::派生类名(基类1形参,基类2形参,...基类n形参,本类形参):基类名1(参数), 基类名2(参数), ...基类名n(参数) { 本类成员初始化赋值语句; }; 派生类的构造、析构函数 * 派生类与基类的构造函数 当基类中声明有默认形式的构造函数或未声明构造函数时,派生类构造函数可以不向基类构造函数传递参数。 若基类中未声明构造函数,派生类中也可以不声明,全采用缺省形式构造函数。 当基类声明有带形参的构造函数时,派生类也应声明带形参的构造函数,并将参数传递给基类构造函数。 派生类的构造、析构函数 * 多继承且有内嵌对象时 的构造函数 派生类名::派生类名(基类1形参,基类2形参,...基类n形参,本类形参):基类名1(参数), 基类名2(参数), ...基类名n(参数),对象数据成员的初始化 {

您可能关注的文档

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档