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

溫馨提示×

溫馨提示×

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

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

C++如何避免非常數全局變量

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

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

避免非常數全局變量

Reason(原因)

非常數全局變量會隱藏依賴關系并導致依賴對象不可預知地被修改。

Example(示例)

struct Data {    // ... lots of stuff ...} data;            // non-const data
void compute()     // don't{    // ... use data ...}
void output()     // don't{    // ... use data ...}

譯者注:全局變量可以被任何代碼看到,也就可能被任何代碼修改。如果變量命名時沒有特殊的規則,這種問題就會更加難以解決。

Note(注意)

全局常量是有用的。

Note(注意)

針對全局變量的規則同樣適用于命名空間范圍的變量。

可選項:如果你使用全局(更普遍的情況是命名空間范圍)數據來避免拷貝,考慮通過一個const類型的參照進行傳遞。另一個解決方案是將數據定義成某些對象的狀態并將操作定義為成員函數。

譯者注:第一種情況時,使用const參照的代碼無法改寫全局變量的內容,這樣就可以限制對全局變量的修改;第二種情況可以通過成員函數控制和檢查針對全局數據的修改。

警告:小心數據競爭。如果兩個線程訪問同一個數據(可以是全局的或者或者通過參照傳遞的),就可能出現數據競爭。每一個指向可修改數據的指針或者引用都可能發生數據競爭。

Note(注意)

你沒有辦法讓不可修改的數據發生數據競爭。

Note(注意)

這條準則是“避免”而不是“禁止使用”。當然存在(很少)例外情況。例如:cin,cout和cerr等。

譯者注:“避免”可以理解為如果可能就不用。

Enforcement(實施建議)

(簡易)報告所有定義在命名空間范圍的非常數變量。

到此,關于“C++如何避免非常數全局變量”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

c++
AI

重庆市| 扬州市| 河源市| 新民市| 星子县| 和平区| 双牌县| 泸溪县| 昌江| 宁津县| 朝阳区| 从化市| 南投市| 漳州市| 金川县| 关岭| 平乡县| 潜山县| 沾化县| 恩平市| 镇远县| 合江县| 封丘县| 高州市| 双鸭山市| 清徐县| 宽城| 尼木县| 东阳市| 齐河县| 内丘县| 增城市| 香河县| 汉川市| 天气| 洪雅县| 四子王旗| 墨脱县| 乌兰察布市| 清徐县| 公主岭市|