91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++怎么直接用代碼表達想法

發布時間:2021-11-26 13:51:38 來源:億速云 閱讀:129 作者:iii 欄目:大數據

這篇文章主要介紹“C++怎么直接用代碼表達想法”,在日常操作中,相信很多人在C++怎么直接用代碼表達想法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++怎么直接用代碼表達想法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

P.1: Express ideas directly in code(直接用代碼表達想法)

Reason(原因)

編譯器不會讀注釋(或者設計文檔),程序員也不會(一貫地)。通過代碼表達的內容被語法定義而且可以(理論上)被編譯器和其他工具檢查。

Example
class Date {public:    Month month() const;  // do    int month();          // don't    // ...};

第一個month的聲明明確表達了返回Montrh和不修改Data對象的狀態這兩件事。第二個聲明則需要讀者猜想而且留下了更多的發生未知錯誤的可能性。

Example, bad(反例)

This loop is a restricted form of std::find:

循環只是std::find的限定形式。

void f(vector<string>& v){    string val;    cin >> val;    // ...    int index = -1;                    // bad, plus should use gsl::index                                       // 不好, 外加應該使用gsl::index    for (int i = 0; i < v.size(); ++i) {        if (v[i] == val) {            index = i;            break;        }    }    // ...}
Example, good(正確示例)

A much clearer expression of intent would be:

意圖的最明確表達是下面這個樣子:

void f(vector<string>& v){    string val;    cin >> val;    // ...    auto p = find(begin(v), end(v), val);  // better,較好    // ...}

經過良好設計的庫會比直接使用語言功能的做法更好的表達意圖(做什么而不是只是怎么做)

C++程序員應該了解標準庫的基本知識并且恰當的運用它。任何程序員都應該了解項目正在使用的基本庫并能恰當的使用它。使用這個指南的任何程序員都應該知道規則支持庫并且恰當的使用它。

Example(示例)
change_speed(double s);   // bad: what does s signify?                          //不好:s的含義是什么? // ...change_speed(2.3)

比較好的做法是明確double的含義(是新速度還是相對于就速度的變化?)和單位。

change_speed(Speed s);    // better: the meaning of s is specified                          // 較好:定義了s的含義// ...change_speed(2.3);        // error: no unit 錯誤:沒有單位change_speed(23m / 10s);  // meters per second 米每秒

我們可以接受一個無修飾的double值作為變化量,但是這容易引發錯誤。如果即想要絕對速度,又想要速度的變化量,我們需要定義一個Delta類型。

譯者注:change_speed(23m/10s)的寫法有些少見,我們明天文章中說明。

Enforcement(實施建議)

Very hard in general. 總的來說很難實施。

  • use const consistently (check if member functions modify their object; check if functions modify arguments passed by pointer or reference)

    堅持使用const(檢查成員函數是否修改對象;檢查函數是否修改通過指針或引用傳遞的參數)

  • flag uses of casts (casts neuter the type system)

    重視類型轉換的用法(類型轉換會使類型系統無法發揮作用)

  • detect code that mimics the standard library (hard)

    發現模仿標準庫的代碼(困難)

到此,關于“C++怎么直接用代碼表達想法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

襄垣县| 伊金霍洛旗| 新营市| 长泰县| 南乐县| 公安县| 泸溪县| 阜宁县| 汾西县| 同心县| 宁南县| 云安县| 唐山市| 平乐县| 山阴县| 永年县| 宁都县| 重庆市| 固始县| 昂仁县| 游戏| 澳门| 策勒县| 保德县| 图木舒克市| 郑州市| 文昌市| 丹江口市| 台北县| 理塘县| 永胜县| 永寿县| 弥渡县| 石首市| 梨树县| 井陉县| 三江| 永清县| 宝丰县| 巴楚县| 敦化市|