亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

C++怎么使用T*或T&參數

發布時間:2021-11-26 14:31:36 來源:億速云 閱讀:552 作者:iii 欄目:大數據

本篇內容主要講解“C++怎么使用T*或T&參數”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C++怎么使用T*或T&參數”吧!

對于通常的使用場景,應該使用T*或T&參數而非智能指針。

Reason(原因)

傳遞一個智能指針來轉交或分享所有權的方式應該只在希望表現所有權語義時使用(參見R.30)。通過智能指針傳遞參數限定了只有使用智能指針的調用者才能使用該函數。傳遞共享智能指針(例如,std::shared_ptr)必然包含運行時代價。

譯者注:代價包括但并不限于管理引用計數

Example(示例)

// accepts any int*void f(int*);
// can only accept ints for which you want to transfer ownershipvoid g(unique_ptr<int>);
// can only accept ints for which you are willing to share ownershipvoid g(shared_ptr<int>);
// doesn't change ownership, but requires a particular ownership of the callervoid h(const unique_ptr<int>&);
// accepts any intvoid h(int&);
Example, bad(反面示例)
// calleevoid f(shared_ptr<widget>& w){    // ...    use(*w); // only use of w -- the lifetime is not used at all    // ...};

See further in R.30.

Note(注意)

We can catch dangling pointers statically, so we don't need to rely on resource management to avoid violations from dangling pointers.

我們可以靜態捕捉懸空指針,因此不需要依靠資源管理來避免發生懸空指針違反。

譯者注:懸空指針是指指向已經釋放的內存的指針;野指針是沒有初始化的指針。

See also:(參考)

  • Prefer T* over T& when "no argument" is a valid option

    當沒有參數是有效選項時應該使用T*而不是T&

  • Smart pointer rule summary

    智能指針使用概括

譯者注:反過來,當不希望參數為空是可以使用T&。

Enforcement(實施建議)

Flag a parameter of a smart pointer type (a type that overloads operator-> or operator*) for which the ownership semantics are not used; that is

標記不包含所有權語義的智能指針類型參數(重載了->和*運算符的類型);即

  • copyable but never copied/moved from or movable but never moved

    可復制但是從來沒有被復制或移動或者可移動卻從來沒有移動

  • and that is never modified or passed along to another function that could do so.

        內容從未被修改或者沒有傳遞給可以修改其內容的函數。

到此,相信大家對“C++怎么使用T*或T&參數”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

c++
AI

临潭县| 红桥区| 阳山县| 长丰县| 鹤岗市| 德令哈市| 西乡县| 福州市| 裕民县| 犍为县| 翁牛特旗| 尼木县| 石嘴山市| 宣汉县| 阳城县| 桑日县| 莎车县| 五寨县| 乡宁县| 多伦县| 勃利县| 隆尧县| 漳浦县| 礼泉县| 综艺| 东光县| 左云县| 徐闻县| 宁都县| 农安县| 丰都县| 遂宁市| 辽宁省| 德清县| 宁乡县| 北流市| 馆陶县| 兰考县| 三原县| 深水埗区| 伊金霍洛旗|