可移動構造 可複製構造 可移動賦值 可複製賦值

2022-06-20 17:39:10 字數 1132 閱讀 2778

記錄一下這幾個容易混淆的概念。

可移動構造(moveconstructible)

指定該型別的例項可以從乙個右值實參構造

定義

給定:下列表示式必須合法且擁有指定的效果:

t u = rv;//u 的值等於 rv 在初始化前的值。rv 的新值未指明。

t(rv);//t(rv) 的值等於 rv 在初始化前的值。rv 的新值未指明。

類不必為滿足此要求而實現移動建構函式:接收 const t& 實參的複製建構函式也能繫結右值表示式。

禁用可移動構造

#include 

​using namespace std;

​class base

int get()

base(base &b)

base(base &&b) = delete;};​

base fun()

​int main()

可複製構造(copyconstructible)

該型別的例項可以從左值表示式中構造

定義

給定:下列表示式必須合法且擁有其指定的效果

t u = v;//u的值等價於v的值,不修改v的值

t(v);//同上

禁用

將拷貝建構函式置為delete

可移動賦值(moveassignable)

該型別的例項可以從右值實參賦值

定義

t = v;//t的值等於v的值,v的值不更改,賦值表示式返回(t&)t

對應的是:

base &operator =(base &&b)

可複製賦值(copyassignable)

該型別的例項可從左值表示式複製賦值

定義

t = v;//t 的值等價於 v 的值, v 的值不更改。

對應的是:

base &operator =(base &b)

可移動的CollectionViewCell

1.建立collectionview並設定 uicollectionview collectionview return collectionview 2.設定其資源 datasource nsmutablearray array for int i 1 i 50 i 3.監聽手勢,並設定其允許移動...

c 11 移動構造 移動賦值 拷貝構造

最近對準備深入學習一下c 11所有的新特性,今天研究了一下c 11的std move和std forward,在研究這個的時候,需要對c 0xx的拷貝構造,拷貝賦值有一些了解.這個不知道的自己去了解,這裡記錄一下c 11新加的移動版本 移動構造 移動賦值和拷貝構造 拷貝賦值的比較,文章引用 現代c ...

純js可移動DIV

保留這個位置和大小 可移動 可調整大小 預設居中開啟 保留位置上開啟 開啟div 操作說明 選中核取方塊 可移動 可調整大小 後,開啟的div具有移動 調整大小的功能 此時移動 調整大小快捷鍵可使用 反之,不可移動 調整大小 此時移動 調整大小快捷鍵無效 單選框預設居中開啟選中,無論有無儲存div位...