文档详情

程序的类层次结构课件.ppt

发布:2024-12-30约2.29万字共74页下载文档
文本预览下载声明

點─圓類層次結構使用虛函數#includeiostream.hclassPoint{private:floatmX,mY;public:Point(){}Point(floati,floatj){mX=i;mY=j;}virtualfloatarea() //聲明為虛函數{return0.0;}};constfloatPi=3.141593;classCircle:publicPoint{private:floatmRadius;public:Circle(floatr){mRadius=r;}floatarea() //虛函數的再定義{returnPi*mRadius*mRadius;}};類層次結構Location—Point—Circle中的構造函數Location::Location(intx,inty){ mX_Pos=x;mY_Pos=y;} Point::Point(intx,inty):Location(x,y)//先調用基類構造函數{ visible=FALSE; //缺省情況下是不可見的}Circle::Circle(intx,inty,intr):Point(x,y)//先調用基類構造函數{ mRadius=r;}說明1)創建一個Circle類對象時,要自動調用Point類的構造函數,再由Point類的構造函數調用其父類Location構造函數2)當一個派生類對象撤銷時,釋放函數調用的順序與構造函數相反3)保護成員具有良好的繼承性,對保護成員的初始化最好在基類中進行4)派生類的構造函數的構成形式,與包含對象成員的類的構造函數相似但不相同派生類對象的創建派生類對象可以用兩種方式創建: 1)用常數參數表創建 2)由部分基類對象創建派生類對象多基派生派生類只有一個基類時,稱為單基派生。一個派生類具有多個基類時,稱為多基派生或多重繼承(multipleinheritance),這時將繼承每個基類的部分代碼。多基派生是單基派生的擴展。與單基派生相比,既有同一性,又有特殊性。單基派生則可以看成多基派生的特例例由Hard(機器名)類與Soft(軟體,

显示全部
相似文档