本篇內(nèi)容介紹了“C++怎么封裝混亂的代碼”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)由有經(jīng)驗(yàn)的網(wǎng)站設(shè)計(jì)師、開發(fā)人員和項(xiàng)目經(jīng)理組成的專業(yè)建站團(tuán)隊(duì),負(fù)責(zé)網(wǎng)站視覺設(shè)計(jì)、用戶體驗(yàn)優(yōu)化、交互設(shè)計(jì)和前端開發(fā)等方面的工作,以確保網(wǎng)站外觀精美、成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)易于使用并且具有良好的響應(yīng)性。
混亂的代碼很容易隱藏錯(cuò)誤并且很難編寫。一個(gè)好的接口會(huì)易用且安全?;靵y的,低層次代碼會(huì)產(chǎn)生很多像下面示例一樣的程序。
int sz = 100;int* p = (int*) malloc(sizeof(int) * sz);int count = 0;// ...for (;;) { // ... read an int into x, exit loop if end of file is reached ... // ... check that x is valid ... if (count == sz) p = (int*) realloc(p, sizeof(int) * sz * 2); p[count++] = x; // ...}
這是一段低層次,冗長,易錯(cuò)的代碼。例如,我們忘記了檢查內(nèi)存枯竭。作為代替手段,我們可以使用vector:
vector<int> v;v.reserve(100);// ...for (int x; cin >> x; ) { // ... check that x is valid ... v.push_back(x);}
標(biāo)準(zhǔn)庫和GSL可以作為這個(gè)原則的范例。例如,與其直接使用數(shù)組、聯(lián)合體、類型轉(zhuǎn)換,自己處理生命周期、gsl::owner等問題,不如使用標(biāo)準(zhǔn)庫提供的vector,span,lock_guard和future等經(jīng)過經(jīng)過更高層次抽象和實(shí)現(xiàn)的功能。標(biāo)準(zhǔn)庫的設(shè)計(jì)和開發(fā)者和我們相比,時(shí)間更充裕,經(jīng)驗(yàn)也更豐富。類似的,我們可以也應(yīng)該設(shè)計(jì)和實(shí)現(xiàn)專用庫,而不是讓使用者(通常是我們自己)自己不斷地挑戰(zhàn)低層次代碼。這是構(gòu)成本準(zhǔn)則中部分原則的另一種說法。
Enforcement(實(shí)施建議)
找到“混亂代碼”,例如復(fù)雜指針操作或者除了實(shí)現(xiàn)抽象之外的類型轉(zhuǎn)換。
“C++怎么封裝混亂的代碼”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
分享題目:C++怎么封裝混亂的代碼
文章分享:http://www.rwnh.cn/article16/gjhpgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、定制網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、服務(wù)器托管、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)