亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        探討C++編程中避免代碼冗余的技巧

        2017-12-15 10:22:23李琳
        電腦知識與技術(shù) 2017年32期
        關鍵詞:函數(shù)調(diào)用循環(huán)

        李琳

        摘要: 編程的基本原則是盡可能避免代碼重復。在程序編寫的過程當中,涉及很多的結(jié)構(gòu)比如循環(huán)、函數(shù)調(diào)用、類等,這很容易導致代碼的冗余。該文以C++編程語言為例,列舉了幾種常見的代碼重復的情況.并提出了相應的解決方案。

        關鍵詞: 循環(huán);函數(shù)調(diào)用;類;代碼冗余; C++

        中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)32-0101-02

        Discussing Technology for Avoiding Code Duplication in C++ Programming

        LI Lin

        (School of Computer and Information Engineering, Luoyang Institute of Science and Technology, Luoyang 471023,China)

        Abstract: The basic principle of programming is that avoiding code duplication. During the progress of coding, many kinds of structures causes code duplication easily such as loop, function call, class.etc. This paper Based on C++ programming language, listed five common situations that induced code duplication and also provided the solutions.

        Key words: loop; function call, class; code duplication; C++ programming

        眾所周知,在編程過程中因為各種原因會產(chǎn)生重復性的冗余代碼。這些多余的代碼往往會引起一些小的bug而不易被覺察到。原因在于它并不會影響最終的運行結(jié)果,卻嚴重影響了執(zhí)行效率。在有些函數(shù)被多次使用時,這種情況就更容易出現(xiàn)。本文以C++編程語言為例,列舉了在編程過程中最常遇見的幾種情況,用一個個具體的實例描述造成重復代碼的原因.并提出了相應的解決方案。

        1 函數(shù)大致相同,但是參數(shù)或者返回的類型不同

        1) 舉例描述:如圖1所示,這里有2段代碼。第一段代碼是輸出整型數(shù)據(jù)類的數(shù)組,第二段代碼是輸出雙精度類型的數(shù)組。可以看到它們所要完成的功能是相同的,只是數(shù)據(jù)的操作類型不同。

        2) 出現(xiàn)的問題:成員函數(shù)擁有相同的結(jié)構(gòu)和作用,僅僅差別在實際操作的對象不同。造成一定程度的代碼冗余。

        3) 解決方案:利用C++提供的成員函數(shù)模板就能較好的解決這個問題。因為模板具有共通性??梢詫⑾嗤拇a部分由模板參數(shù)定義獲得。這樣就能夠針對不同的數(shù)據(jù)類型使用同一段代碼完成。所以可以用下列代碼(如圖2)來完成:將原來數(shù)據(jù)類型的地方比如int用一個參數(shù)A代替,這樣就抽象出一個模板。當實參的數(shù)據(jù)類型是整型時,編譯器會自動用整型類型來替代類型參數(shù)A,如果實參的數(shù)據(jù)類型變?yōu)殡p精度型,那么編譯程序又會用雙精度型來替代類型參數(shù)A。

        2 構(gòu)造函數(shù)的重載

        1) 舉例描述:如圖3所示,propertypage類有2個構(gòu)造函數(shù),他們的區(qū)別在于一個是無參數(shù)的構(gòu)造函數(shù),一個是有參數(shù)的構(gòu)造函數(shù)。

        2) 出現(xiàn)的問題:兩個構(gòu)造函數(shù)的成員初始化工作相同,只因為有無參數(shù)的差別,需要分別構(gòu)建,導致代碼冗余。

        3) 解決方案:利用委托構(gòu)造函數(shù)解決此類問題就是很好的做法??梢宰屍渲幸粋€構(gòu)造函數(shù)在初始化的階段調(diào)用另一個同類的構(gòu)造函數(shù),這樣就可以由委托的函數(shù)代替完成初始化的工作,從而減少了代碼的重復率。

        3 在調(diào)用函數(shù)時遇到很長的參數(shù)列表

        1) 舉例描述:有的時候我們調(diào)用的函數(shù)參數(shù)會特別多

        2) 出現(xiàn)的問題:,example( )函數(shù)被調(diào)用了3次,參數(shù)非常的多,3次函數(shù)調(diào)用中只有細微的差別。代碼被大量重復。

        3) 解決方案:利用綁定成員函數(shù)的方法來減少重復性代碼。Std::bind是C++提供的一種很好的機制,可以用來綁定多個不同參數(shù),其參數(shù)的類型和個數(shù)都不受限制,然后將其返回到另一個可以接收這些參數(shù)的函數(shù)。用于接收參數(shù)綁定值的可以是函數(shù)、函數(shù)指針、lambda表達式、成員函數(shù)等。下圖6中參數(shù)Work使用占位符_1綁定,說明對done()的調(diào)用只需要提供一個參數(shù)即可。

        4 小結(jié)

        通過成員函數(shù)模板、委托構(gòu)造函數(shù)、綁定成員函數(shù)等幾種方法能較好的減少代碼的冗余,讓代碼的結(jié)構(gòu)更加清晰,執(zhí)行率更高。當然,一味地減少代碼不是最終目的,重要的是減少代碼出現(xiàn)Bug的幾率,從而便于后期的代碼維護。

        參考文獻:

        [1] 邁耶斯.Effective Modern C++[M].南京:東南大學出版社,2015.

        [2] 任智康.c++中的函數(shù)模版和類模版[EB/OL].http://www.cnblogs.com/renyuan/archive/2013/05/26/3100047.html.endprint

        猜你喜歡
        函數(shù)調(diào)用循環(huán)
        基于D1-H應用處理器的RT-Thread駐留方法
        C程序設計課程教學中知識點與德育點映射
        基于C語言的數(shù)學菜單的設計與實現(xiàn)
        基于函數(shù)調(diào)用序列模式和函數(shù)調(diào)用圖的程序缺陷檢測方法*
        Unity3D項目腳本優(yōu)化分析與研究
        中國新通信(2017年1期)2017-03-08 03:12:21
        基于省級精品教材多元自主學習平臺的螺旋上升學習研究
        PDCA循環(huán)在持續(xù)改進領導教育質(zhì)量中的應用
        淺析英語詞匯記憶策略
        青春歲月(2016年20期)2016-12-21 12:29:31
        分層、過濾、循環(huán)教學法初探*
        新一代(2016年15期)2016-11-16 17:34:11
        關于CFB鍋爐排煙溫度控制的探討
        日本一二三区在线观看视频| 国产亚洲午夜精品| 亚洲AV秘 无码一区二区三| 亚洲av中文字字幕乱码| 日韩美女av一区二区| 中文字幕亚洲综合久久| 国产二级一片内射视频插放| 麻豆精产国品| 午夜日韩视频在线观看| 人妻少妇偷人精品一区二区三区| 亚洲乱码中文在线观看| 性高朝大尺度少妇大屁股| 97久久超碰国产精品2021| 麻豆╳╳╳乱女另类| 久久午夜伦鲁片免费无码| 久久久久一| 日韩毛片久久91| 国产美女黄性色av网站| 精品国产亚洲av高清日韩专区| 黑人玩弄极品人妻系列视频| 亚洲av迷人一区二区三区| 午夜天堂精品久久久久| 久久久久久久综合综合狠狠| 人妻少妇精品无码专区动漫| 国产精品熟妇视频国产偷人| 国产黄片一区视频在线观看| 亚洲1区第2区第3区在线播放| 亚洲av综合一区二区在线观看| 免费a级毛片永久免费| 国产精品久久久久久久专区| 色视频日本一区二区三区 | 无码精品一区二区三区免费16| 熟女少妇av一区二区三区| 亚洲国产精品一区二区成人片国内| 国产亚洲真人做受在线观看| 亚洲V在线激情| 亚洲最大的av在线观看| 午夜视频国产在线观看| 国产裸体美女永久免费无遮挡| 少妇无码av无码专区线| 久热爱精品视频在线观看久爱|