![](/img/trans.png)
[英]Why delete of templete copy constructor cause assignment operator disfunctional?
[英]Why and when delete copy constructor and operator=
作為 C++ 新手,我想知道為什么顯式“禁用”或刪除類的 = 運算符和復制構造函數很有用:
SomeClass& operator=(SomeClass&) = delete;
SomeClass(SomeClass&) = delete;
我想如果該類是單身人士,這是有道理的。 但是還有其他情況嗎? (也許這與性能問題有關?)
這與性能無關。 當復制您的類沒有意義時,您禁止復制,即如果不清楚復制相關類的含義。
著名的例子是具有復雜內部狀態的標准 IO 流和無法復制的std::unique_ptr
,因為它是指向其托管對象的唯一指針。
我認為以下是一個很好的補充:
如果您想禁止按值傳遞對象,您可以刪除它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.