C++面向对象程序设计课件1课件.ppt

C++面向对象程序设计课件1课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共88页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

10.3.2派生類3.私有繼承

當類的繼承方式為private時,基類的公有(public)成員和保護(protected)成員將成為派生類的私有成員,而基類的私有成員不能被派生類訪問。(看下圖:)返回本節目錄如10.1.1中實例2先定義了一個矩形類,然後又從矩形類中派生出正方形類,正方形是矩形的一個特例,矩形類實例化一個矩形對象時需要用到長和寬兩個參數,而正方形則只需要用到邊長一個參數,所以在派生過程中新增了成員函數InitSquare用來完成初始化工作。InitSquare函數實現過程中用到了基類的成員函數InitRect,因為InitRect函數為基類的公有成員,所以在派生類中可以被訪問。如果InitSquare函數的實現過程改為如下語句:

voidInitSquare(floatb)

{length=b;

width=b;}

該程式是不能被編譯通過的,因為派生類是不能訪問基類的私有成員的。另外,該程式使用的繼承方式為公有繼承,因此基類中的公有成員都被派生類吸收並成為公有成員。10.3.2派生類返回本節目錄10.3.3派生類的構造函數與析構函數返回本節目錄繼承的目的是為了發展,派生類繼承了基類的成員,實現了代碼重用,這只是一部分,而代碼的擴充才是最主要的,只有添加新的成員,加入新的功能,類的派生才有實際意義。我們知道,基類的構造函數和析構函數是不能被繼承的,因此如果要對新增成員進行初始化,就必須加入新的構造函數。同樣,對派生類對象的掃尾、清理工作也需要引入新的析構函數。1.派生類的構造函數如果基類的對象包含對成員的初始化,而在建立派生類對象時,由於基類的構造函數不能被繼承而無法執行,因此會使基類的成員未初始化,所以在設計派生類的構造函數10.3.3派生類的構造函數與析構函數返回本節目錄時,不僅要考慮派生類新增的數據成員的初始化,還應當考慮基類數據成員的初始化。

派生類構造函數的一般格式為:

派生類構造函數名(參數列表):基類構造函數名(參數列表)

{

派生類新增成員初始化語句;

}

將【例10.2】改為使用構造函數進行初始化:【例10.11】程式名為l10_11.cpp。

#includeiostream.h

classrectangle//定義矩形類(基類)

{public:

rectangle(floatlen,floatwid)//基類的構造函數 {length=len;

width=wid;

}floatGetArea();

floatGetPerimeter();

private://定義私有成員變數

floatlength;

floatwidth;

};

floatrectangle::GetArea()//基類成員函數實現

{returnlength*width;

}

floatrectangle::GetPerimeter()//基類成員函數實現

{return2*(length+width);

}

classrect:publicrectangle//從矩形類中派生新類(正方形類)

{public:

rect(floatb):rectangle(b,b)//派生類的構造函數

{}

};10.3.3派生類的構造函數與析構函數返回本節目錄10.3.3派生類的構造函數與析構函數返回本節目錄voidmain()

{rectx(8);//聲明正方形類對象

coutx.GetArea()endl;//調用從矩形類中繼承

//下來的成員函數(GetArea)

coutx.GetPerimeter()endl;//調用從矩形類中繼承下來

文档评论(0)

157****3839 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档