999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C++語言程序設計中多態問題分析

2017-03-06 20:48:25李欣然趙山林
計算機時代 2017年2期

李欣然+趙山林

摘 要: C++語言程序設計課程中,多態性分為兩類。一是靜態多態,通過函數重載實現,解決自定義數據類型運算問題;二是動態多態,通過虛函數實現,提高了程序的可擴充性。通過實例分析出利用函數重載實現靜態多態的方法以及利用虛函數產生動態多態的條件。

關鍵詞: C++語言程序設計; 靜態多態; 動態多態; 虛函數

中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2017)02-57-0

0 引言

多態性是面向對象程序設計的一個重要特征。從系統實現的角度看,多態性分為兩類:靜態多態性和動態多態性[1]。靜態多態性是通過函數重載實現的。由函數重載和運算符重載形成的多態性屬于靜態多態性。動態多態性是指編譯時不能確定調用的是哪個函數,而在程序運行過程中才動態地確定具體操作對象。動態多態又稱運行時的多態性。

1 靜態多態性

靜態多態性是程序編譯時就知道調用函數的全部信息,因此,在程序編譯時系統就能決定要調用的是哪個函數。靜態多態性又稱編譯時的多態性。靜態多態性的函數調用速度快、效率高,但缺乏靈活性,在程序運行前就已決定了執行的函數和方法。下面介紹靜態多態的實現方法。

1.1 函數重載

C++允許用同一函數名定義多個函數,這些函數的參數類型或者參數個數不同,這就是函數的重載。重載函數的參數個數,參數類型,或參數順序三者中必須至少有一種不同,函數返回值類型可以相同也可以不同。下列程序的功能是利用函數重載求兩個整數或三個整數最大數。

函數重載以后,根據實參的類型及個數決定調用哪個重載的函數。上例中實參是兩個就調用求兩個數最大值函數,同理實參是三個就調用求三個數最大值得函數。

當幾個函數的功能是相同的或者相近的,只是參數類型或者參數個數不同,可以考慮定義函數重載。同一個函數,通過重載可以實現不同的功能。

1.2 運算符重載

運算符重載也屬于函數重載,解決的是自定義數據類型的運算問題。運算符重載既可以重載為類的成員函數也可以重載為類的友元函數。下列程序的功能是通過運算符重載為類的成員函數完成復數的算術運算。

C++中的運算符只能對基本數據類型進行運算。復數是一種自定義數據類型,是不能用C++提供的運算符完成算術運算的。自定義數據類型--復數類只有通過運算符重載才能利用C++已有的運算符完成運算。所以,運算符重載解決的是自定義數據類型的運算問題。同理通過對流插入運算符和流提取運算符重載可以解決自定義數據類型的輸入輸出問題。

2 動態多態性

動態多態性是指在編譯過程中不能確定調用的是哪個函數,只有在程序運行過程中才能確定調用具體函數的過程。它又稱運行時的多態性。動態多態性是通過虛函數( virtual function)實現的。面向對象實現動態多態應滿足三個條件。首先,動態關聯必須存在于類的繼承結構中,也就是說有基類有派生類。其次,基類中某一成員函數被定義為虛函數,且該虛函數在派生類中有不同的實現。第三,利用指針或引用調用該虛函數才能產生動態關聯。

下列程序的功能是通過虛函數完成動態關聯。

上例中p1. Area()是通過對象名調用虛函數產生靜態關聯,對象名調用的是自己所屬類的虛函數。fun(rect)調用的是派生類的Area()函數,而fun(p1)調用的是基類的Area()函數。通過指針或引用調用虛函數才能產生動態關聯。

3 結論

本文分析了《C++語言程序設計》課程中多態問題。多態分為靜態多態和動態多態。通過實例分析出靜態多態的特點和作用,以及靜態多態的實現方法。通過實例分析出動態多態的特征,以及實現動態關聯的條件。幫助讀者理解面向對象程序設計語言的基本特征-----多態的含義和作用。

參考文獻(Reference):

[1] 譚浩強.C++程序設計[M].清華大學出版社,2015.

[2] 鄭莉.C++語言程序設計(第4版)[M].清華大學出版社,2011.

[3] 錢能.C++程序設計教程設計思想與實現[M].清華大學出版

社,2009.

[4] 姚林.C++程序設計[M].人民郵電出版社,2011.

主站蜘蛛池模板: 国产亚洲欧美在线中文bt天堂| 色成人亚洲| 亚洲中文字幕国产av| 91精品专区国产盗摄| 少妇露出福利视频| 最新痴汉在线无码AV| 国精品91人妻无码一区二区三区| 97精品伊人久久大香线蕉| 日本少妇又色又爽又高潮| 亚洲人成成无码网WWW| 国产成人三级| 免费A∨中文乱码专区| 热re99久久精品国99热| 亚洲日韩高清无码| 久久亚洲黄色视频| 久久久久人妻一区精品色奶水 | 国产欧美精品专区一区二区| 日本久久网站| 欧美日韩北条麻妃一区二区| 国产精品lululu在线观看| 国产亚洲精| 亚洲精品无码AⅤ片青青在线观看| 久久99蜜桃精品久久久久小说| 91po国产在线精品免费观看| 国产在线观看一区精品| 国产精品熟女亚洲AV麻豆| 在线视频97| 波多野结衣一区二区三区四区 | 国产成人AV大片大片在线播放 | 国产精品漂亮美女在线观看| 54pao国产成人免费视频| 中文字幕无线码一区| 精品三级网站| 中文字幕2区| 亚洲人成网站在线观看播放不卡| 亚洲人在线| 国产中文一区a级毛片视频| 成人精品亚洲| 国产精品99久久久久久董美香| 国产丰满成熟女性性满足视频| 亚洲第一视频网| 日韩少妇激情一区二区| 欧美日韩午夜视频在线观看| 热伊人99re久久精品最新地| a级免费视频| 中日无码在线观看| 黄色网址免费在线| 日韩不卡高清视频| a网站在线观看| 亚洲AV永久无码精品古装片| 香蕉综合在线视频91| 亚洲天堂免费| 亚洲欧美人成电影在线观看| 欧美精品黑人粗大| 18禁影院亚洲专区| 成人午夜天| 中国毛片网| 青青草国产在线视频| 亚洲无码高清视频在线观看| 日韩在线1| 中文成人在线| 在线观看精品自拍视频| 国产国产人在线成免费视频狼人色| 92午夜福利影院一区二区三区| 经典三级久久| 国产精品污视频| 久久久久人妻一区精品| 国产欧美精品一区二区| 色婷婷成人网| 亚洲毛片一级带毛片基地| 国产手机在线观看| 欧美专区在线观看| 中文字幕2区| 青青草国产精品久久久久| 亚洲国产一区在线观看| 精品伊人久久久大香线蕉欧美| 久久这里只精品国产99热8| av在线5g无码天天| 九九热精品视频在线| 亚洲国产欧美国产综合久久 | 欧美日韩导航| 成年人视频一区二区|