中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

C++中在什么時候使用class

發布時間:2021-11-26 15:34:19 來源:億速云 閱讀:240 作者:iii 欄目:大數據

本篇內容介紹了“C++中在什么時候使用class”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

C.2:類包含不變式是使用class定義類,如果數據成員可以獨立變更時使用struct定義類。

譯者注:不變式可以認為是類的成員必須滿足的條件。例如對于std::string來說,長度成員必須等于其管理的字符串長度。

Reason(原因)

可讀性。降低理解難度。使用class關鍵字讓程序員意識到需要不變式。這是一個有用的慣例。

譯者注:使用class關鍵字還默認保證了數據成員不會被隨意修改,這使維持不變式成為可能。

Note(注意)

不變式是一個對象的成員必須滿足的邏輯條件,這些條件由構造函數建立,是public成員函數的前提條件。一旦不變式成立(通常是由構造函數),該對象所有成員函數都可以被調用。不變式可以被非正式的說明(例如通過注釋),或者通過Expects(事前條件)正式檢查。

如果所有數據成員都可以相互獨立地變更,則不可能存在不變式。

Example(示例)

struct Pair {  // the members can vary independently    string name;    int volume;
};

but:

class Date {public:    // validate that {yy, mm, dd} is a valid date and initialize    Date(int yy, Month mm, char dd);    // ...private:    int y;    Month m;    char d;    // day};

譯者注:這個例子的不變式是年月日的組合必須有效。

Note(注意)

如果一個類包含私有數據成員,使用者就不能在不使用構造函數的情況下完全初始化該類的對象。因此,類的定義者在提供構造函數的同時,必須定義其含義。這實際上意味著定義者需要定義不變式。

See also(參見):

  • define a class with private data as class

    使用class關鍵字定義包含私有數據的類。

  • Prefer to place the interface first in a class

    推薦在類的最初定義接口

  • minimize exposure of members

    最小限度暴露成員

  • Avoid protected data

    避免protected類型數據

Enforcement(實施建議)

Look for structs with all data private and classes with public members.

找到所有數據都被定義為私有的結構體和包含公有成員(應為數據成員,譯者注)的類。

譯者注:所謂原則就是不需要深入思考就可以執行,而效果卻會逐漸顯現的那些良好實踐。

“C++中在什么時候使用class”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

鹤峰县| 房产| 肥乡县| 无极县| 色达县| 玉树县| 开封市| 孝昌县| 金阳县| 高要市| 德安县| 鄱阳县| 台南市| 合肥市| 黄陵县| 海伦市| 奇台县| 老河口市| 札达县| 万安县| 湛江市| 武威市| 弋阳县| 贵港市| 武胜县| 清原| 瑞丽市| 民乐县| 通城县| 蓬溪县| 禄丰县| 汝城县| 三穗县| 吉木萨尔县| 江阴市| 启东市| 黔东| 绥芬河市| 汉中市| 邵阳县| 碌曲县|