這篇文章主要介紹“C++怎么直接用代碼表達(dá)想法”,在日常操作中,相信很多人在C++怎么直接用代碼表達(dá)想法問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”C++怎么直接用代碼表達(dá)想法”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)公司2013年開(kāi)創(chuàng)至今,先為天山等服務(wù)建站,天山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為天山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
編譯器不會(huì)讀注釋?zhuān)ɑ蛘咴O(shè)計(jì)文檔),程序員也不會(huì)(一貫地)。通過(guò)代碼表達(dá)的內(nèi)容被語(yǔ)法定義而且可以(理論上)被編譯器和其他工具檢查。
class Date {public: Month month() const; // do int month(); // don't // ...};
第一個(gè)month的聲明明確表達(dá)了返回Montrh和不修改Data對(duì)象的狀態(tài)這兩件事。第二個(gè)聲明則需要讀者猜想而且留下了更多的發(fā)生未知錯(cuò)誤的可能性。
This loop is a restricted form of std::find
:
循環(huán)只是std::find的限定形式。
void f(vector<string>& v){ string val; cin >> val; // ... int index = -1; // bad, plus should use gsl::index // 不好, 外加應(yīng)該使用gsl::index for (int i = 0; i < v.size(); ++i) { if (v[i] == val) { index = i; break; } } // ...}
A much clearer expression of intent would be:
意圖的最明確表達(dá)是下面這個(gè)樣子:
void f(vector<string>& v){ string val; cin >> val; // ... auto p = find(begin(v), end(v), val); // better,較好 // ...}
經(jīng)過(guò)良好設(shè)計(jì)的庫(kù)會(huì)比直接使用語(yǔ)言功能的做法更好的表達(dá)意圖(做什么而不是只是怎么做)
C++程序員應(yīng)該了解標(biāo)準(zhǔn)庫(kù)的基本知識(shí)并且恰當(dāng)?shù)倪\(yùn)用它。任何程序員都應(yīng)該了解項(xiàng)目正在使用的基本庫(kù)并能恰當(dāng)?shù)氖褂盟?。使用這個(gè)指南的任何程序員都應(yīng)該知道規(guī)則支持庫(kù)并且恰當(dāng)?shù)氖褂盟?/p>
change_speed(double s); // bad: what does s signify? //不好:s的含義是什么? // ...change_speed(2.3)
比較好的做法是明確double的含義(是新速度還是相對(duì)于就速度的變化?)和單位。
change_speed(Speed s); // better: the meaning of s is specified // 較好:定義了s的含義// ...change_speed(2.3); // error: no unit 錯(cuò)誤:沒(méi)有單位change_speed(23m / 10s); // meters per second 米每秒
我們可以接受一個(gè)無(wú)修飾的double值作為變化量,但是這容易引發(fā)錯(cuò)誤。如果即想要絕對(duì)速度,又想要速度的變化量,我們需要定義一個(gè)Delta類(lèi)型。
譯者注:change_speed(23m/10s)的寫(xiě)法有些少見(jiàn),我們明天文章中說(shuō)明。
Very hard in general. 總的來(lái)說(shuō)很難實(shí)施。
use const
consistently (check if member functions modify their object; check if functions modify arguments passed by pointer or reference)
堅(jiān)持使用const(檢查成員函數(shù)是否修改對(duì)象;檢查函數(shù)是否修改通過(guò)指針或引用傳遞的參數(shù))
flag uses of casts (casts neuter the type system)
重視類(lèi)型轉(zhuǎn)換的用法(類(lèi)型轉(zhuǎn)換會(huì)使類(lèi)型系統(tǒng)無(wú)法發(fā)揮作用)
detect code that mimics the standard library (hard)
發(fā)現(xiàn)模仿標(biāo)準(zhǔn)庫(kù)的代碼(困難)
到此,關(guān)于“C++怎么直接用代碼表達(dá)想法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
文章名稱(chēng):C++怎么直接用代碼表達(dá)想法
地址分享:http://www.rwnh.cn/article38/pgcpsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站設(shè)計(jì)、小程序開(kāi)發(fā)、網(wǎng)站改版、企業(yè)網(wǎng)站制作、自適應(yīng)網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)