国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++多態

2019-11-11 01:09:51
字體:
來源:轉載
供稿:網友

       多態是面向對象編程的重要特性,也是C++的一個特性,同樣也是類設計的重要概念。多態可以理解是重載,通俗講就是好比是人格分裂癥——一個身體中有好幾種性格。

默認參數

       默認參數時C++提供的一項新內容,默認參數指的是當函數調用中省略了實參時自動使用的一個值,這樣極大的提高了使用函數的靈活性。默認參數不屬于多態,但筆者認為默認參數也可以提供多態的特性,可以將默認參數理解為一種最簡單的重載,代碼不變而只是修改參數的值。通過函數原型中賦值給參數來設置默認值,由于編譯器通過查看原型來了解函數所使用的參數數目,因此函數原型也必須將可能的默認參數告知程序。

函數重載

       函數重載(多態)是C++在C語言的基礎上新增的功能,默認參數能使用不同數目的參數調用同一個函數,而函數重載能夠使用多個同名的函數。“多態”一詞指的是由多種形式,“函數重載”指的是可以有多個同名的函數,兩個概念是一回事。函數重載的關鍵是函數的參數列表——也稱為函數特征標。如果兩個函數的參數數目和類型相同,同時參數的排列順序也相同,則他們的特征標相同,而變量名是無關緊要的。C++允許定義名稱相同的函數,條件是它們的特征標不同。        是函數重載中有幾點需要注意: - 使用被重載的函數時,需要在函數調用中使用正確的參數類型。 - 編譯器在檢查函數特征標時,將把引用類型和類型本身視為同一個特征標。 - 匹配函數時,不區分const和非const變量,非const變量可以匹配const和非const參數變量,而const變量只能匹配const參數變量。 - 函數重載時,特征標必須不同,返回類型可以不同。 - 重載函數匹配時,根據變量的類型調用最匹配的類型。        當函數基本上執行相同的任務,但使用不同形式的數據時,才應采用函數重載,盡可能的使用默認參數實現相同的目的。

運算符重載

       運算符重載也是一種形式的C++多態,函數多態旨在能夠用同名的函數來完成相同的基本操作,即使這種操作被用于不同的數據類型,運算符重載就是將函數重載的概念擴展到運算符上,允許賦予C++運算符多種含義 ,并且可以將運算符重載擴展到用戶自定義的類型。        要重載運算符,需要使用關鍵字Operator,后面接一個有效的C++運算符,構成運算符函數的特殊函數形式。使用重載的運算符時,運算符左側的對象為調用對象,右側的對象是作為參數被傳遞的對象。在調用重載運算符時,可以由對象顯式的使用運算符函數表示法來調用它。

重載限制

       重載的運算符不必是成員函數,運算符重載其實就是對使用數據類型擴充到用戶定義的類型,基本上重載的運算符不改變其原來的含義,具體的限制如下: - 重載后的運算符必須至少有一個操作數是用戶定義的類型,這將防止用戶為標準類型重載運算符; - 使用運算符時不能違反運算符原來的句法規則,不能修改運算符的優先級; - 只能重載C++中有的運算符,不能創建新的運算符; - C++中存在不能重載的運算符:sizeof,.,::,?,typeid,const_cast,dynamic_cast,reinterPRet_cast,static_cast; - C++中有些運算符只能通過成員函數進行重載:=,(),[],->。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 宜良县| 简阳市| 南汇区| 峡江县| 黎平县| 和林格尔县| 双鸭山市| 泉州市| 合作市| 平定县| 鄂尔多斯市| 丹棱县| 长武县| 鸡东县| 阿克| 老河口市| 林州市| 黔南| 福建省| 台东县| 岳西县| 漯河市| 财经| SHOW| 屏东市| 吴川市| 伊金霍洛旗| 襄樊市| 惠安县| 梅河口市| 龙山县| 萝北县| 永福县| 吉林省| 皋兰县| 马龙县| 三台县| 马龙县| 长葛市| 漾濞| 汝州市|