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

溫馨提示×

溫馨提示×

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

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

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

凭祥市| 武清区| 贞丰县| 特克斯县| 中方县| 清远市| 阳谷县| 阜阳市| 康平县| 宣汉县| 云霄县| 循化| 滨州市| 克山县| 长海县| 正安县| 屏南县| 云林县| 万山特区| 吕梁市| 商城县| 天峻县| 铅山县| 盐源县| 鹿泉市| 静乐县| 房产| 定州市| 海兴县| 顺平县| 冀州市| 嘉峪关市| 麦盖提县| 师宗县| 页游| 镇雄县| 阳城县| 桦川县| 和静县| 手游| 宝丰县|