freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

visualc程序設計教程第二章c語言基礎和面向對-資料下載頁

2025-01-13 03:22本頁面
  

【正文】 ? ( 4)共享繼承 ? 單繼承是指具有單一直接父類的繼承關系。 ? 多繼承是指具有多個直接父類的繼承關系。 ? 單繼承和多繼承示意圖如圖 21所示。 ? 重復繼承和共享繼承是多繼承的一種變異形態(tài)。重復繼承是指一個子類根據(jù)需要多次繼承一個父類,且在子類中保留多個父類副本的繼承方式,而共享繼承則是通過直接和間接的方式多次繼承一個父類,但最終只在子類中保留一個父類副本的繼承機制。重復繼承和共享繼承過程都需要以間接方式實現(xiàn)。 ? 圖 21 單繼承和多繼承示意圖 繼承 ? 2.類成員的可訪問特性 ? 在繼承中,可以通過指定類的屬性和方法的可訪問特性。如上所述,在一個類中,屬性和方法都可以指定為私有、公有或受保護,并以此來決定被子類繼承的可能性以及被外界訪問的可能性,類成員的可訪問特性如圖 22所示。 ? 具有私有訪問特性的屬性和方法不能被繼承,也不能被外界所訪問。 ? 具有公有訪問特性的屬性和方法不僅可以被繼承,而且也可以被外界所訪問。 ? 具有受保護訪問特性的屬性和方法只可以被繼承,而不能被外界所訪問。 繼承 ? 3.公有繼承和私有繼承 ? 類的繼承方式包括公有繼承和私有繼承兩種。 ? 公有繼承時,父類的受保護成員被繼承為子類的受保護成員,父類的公有成員被繼承為子類的公有成員,父類的私有成員不能被繼承。 ? 私有繼承時,父類的受保護成員和公有成員都被繼承為子類的私有成員。同樣,父類的私有成員不能被繼承。 繼承 ? 4.繼承中的同名成員訪問 ? 在繼承關系中,父類的非私有成員可以被子類所繼承。同時,子類也可以定義父類的同名成員。如果是屬性成員同名,則相應產生一個新屬性成員,如果是定義了一個和父類具有相同原型的方法成員,則子類方法對父類的同名方法構成覆蓋關系。 ? 單繼承中的同名成員和多繼承中的同名成員具有類似的地方,因此,可以以單繼承為例說明其使用方法,如表 23所示: 繼承 ? 則在 B類方法中直接使用的屬性成員 ya表示在子類中重新定義的成員(在子類定義中以粗體表示),而只有使用如: ? A::ya ? 形式的成員才表示需要使用父類中的 ya成員。同樣,在使用子類中的 za成員和使用父類中的 za成員時,也需要采用同樣的方法。如果定義 B類對象為 b,則訪問子類中的 za成員的方法為: ? ? 而訪問父類中的成員 za,則需要采用: ? ::za ? 的形式。 ? ? 在多繼承中,如果父類 A1和父類 A2中同時存在可繼承屬性成員 x ,同時在子類 B中再次定義了一個同名成員x ,則在定義一個子類對象 b之后,訪問三個類中的同名成員的方法為: ? //使用子類中的成員 ? ::x //使用父類 A1中的成員 ? ::x //使用父類 A2中的成員 ? 可見,多繼承中的同名成員訪問和單繼承類似。 繼承 ? 5.繼承中的構造函數(shù) ? 1)單繼承中的構造函數(shù) ? 構造函數(shù)是類中的一個特殊的函數(shù)。應用構造函數(shù)的主要目的是期望在創(chuàng)建對象的同時進行必要的初始化。如下例中的 CIRCLE類: ? class CIRCLE{ ? private: ? int x,y。 //圓心坐標 ? double r。 //半徑 ? CIRCLE(int a, int b, double x){ //構造函數(shù) ? x=a。 y=b。 r=x。 ? } ? CIRCLE() { } //構造函數(shù)重載 ? public: ? void draw()。 ? void outcenter()。 ? void outrad()。 ? } ? 當需要創(chuàng)建一個類的實例時,自動調用構造函數(shù),如: ? CIRCLE c1,c2(1,1,)。 ? 其中 c1的創(chuàng)建調用了無參的構造函數(shù),而 c2的創(chuàng)建自動為三個私有屬性成員賦初值。 ? 當一個類需要被繼承時,子類的構造函數(shù)就需要同時傳遞參數(shù)到父類的構造函數(shù),以期在生成子類對象的同時調用父類的構造函數(shù) . ? 寫明定義方式,如這里就可以說: ? 如 A是 B的派生類 ? A::A(形參聲明 ):B(參數(shù)列表 ) ? { ? 派生類 A構造函數(shù)體 ? } ? 2)多繼承中的構造函數(shù) ? 多繼承是一種復雜的繼承關系,是由多個父類派生子類的過程。 多態(tài)和虛函數(shù) ? 多態(tài)( polymorphism)是指屬于不同類的對象對同一消息做出不同的響應,具體表現(xiàn)在函數(shù)調用的 “ 一種接口,多種方法 ” 特性。多態(tài)性廣義地分為靜態(tài)多態(tài)性和動態(tài)多態(tài)性。靜態(tài)多態(tài)性是指一個實體同時以不同的形式存在。在 C++中,靜態(tài)多態(tài)性表現(xiàn)為函數(shù)重載( function overload)和運算符重載( operator overload)。動態(tài)多態(tài)性具體表現(xiàn)為虛函數(shù)和覆蓋( override)。 ? ? 所謂函數(shù)重載,是指不同的功能代碼的函數(shù)可以共用一個函數(shù)名。這些被重載的函數(shù)雖然函數(shù)名相同,但每個函數(shù)所使用的參數(shù)類型、參數(shù)序列或參數(shù)個數(shù)必須不同。即在 C++的任何一個類中,可以具有相同的函數(shù),但這些同名函數(shù)的參數(shù)一定不能相同。函數(shù)的參數(shù)類型、參數(shù)個數(shù)和參數(shù)次序稱為函數(shù)簽名或函數(shù)特征。當函數(shù)同名時, C++編譯器通過函數(shù)簽名來識別和調用不同的函數(shù)。 ? ? 運算符重載就是用一個運算符完成不同的運算操作。它同函數(shù)重載在實質上是一樣的,因為一個運算符完成的功能實際上是由一個函數(shù)實現(xiàn)的,即運算符重載函數(shù)。當編譯器遇到重載運算符時,會自動調用運算符的重載函數(shù)完成操作。 ? 運算符重載的一般形式如下: ? 返回值類型 operator運算符 (形參列表) ? { ? 函數(shù)體 ? } ? 其中, “ 返回值類型 ” 指定的是重載運算符函數(shù)的返回值的類型; “ operator”是要重載的運算符的名稱; “ 形參列表 ” 給出了重載運算符所需要的參數(shù)和數(shù)據(jù)類型。 ? ? 多態(tài)性是面向對象程序設計的重要特征之一。它與前面講過的封裝性和繼承性構成了面向對象程序設計的三大特征。這三大特征是相互聯(lián)系的,其中,封裝性是基礎,繼承性是關鍵,多態(tài)性是補充,而多態(tài)性又必須存在于繼承的環(huán)境中。以上所述的函數(shù)重載和運算符重載就是 C++中的多態(tài)性技術。在 C++中又將多態(tài)性分為兩類:編譯時多態(tài)即靜態(tài)多態(tài)性和運行時多態(tài)即動態(tài)多態(tài)性。 ? ? 虛函數(shù)是在基類中被冠以關鍵字 virtual的成員函數(shù),它提供了一種接口界面。虛函數(shù)可以在一個或多個派生類中被重新定義,但要求在派生類中重新定義時,虛函數(shù)的函數(shù)原型,包括返回類型、函數(shù)名、參數(shù)個數(shù)、參數(shù)類型的順序等都必須完全相同。 本章結束
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1