同意程式輕鬆實現乙個不可複製的類。
需包括標頭檔案
#include或
#include
在c++定義乙個類時。假設不明白定義複製建構函式和複製賦值操作符。編譯器會為我們自己主動生成這兩個函式。
比如class empty_class ;
實際上類似於
class empty_class
empty_class & operator=(const empty_class &)
};但有時候我們不要類的複製語義,希望禁止複製類的實現。比較常見的做法就是私有化複製建構函式和賦值操作符,
手寫**也非常easy。如:
class do_not_copy
;但假設程式中有大量這種類,反覆寫**也是非常麻煩的,解決方法也不夠優雅。
noncopyable為實現不可複製的類提供了簡單清晰的解決方式:
從 boost::noncopyable 派生就可以。
這裡使用預設的私有繼承是同意的。顯示的寫出private或public修飾詞也能夠。效果同樣。
我們定義的子類會自己主動私
有化父類noncopyable的複製建構函式。從而禁止使用者從外部訪問複製建構函式和複製賦值
函式。以上樣例也改寫為:
class do_not_copy :boost::noncopyable
;#include#include#includeusing namespace std;
using namespace boost;
class student:boost::noncopyable
; int print()
private:
int id;
};int main()
{ student st(100);
cout<
若沒有繼承noncopyable
輸出:100
100若繼承,如上述**,在凝視那句開始報錯。
APUE之執行緒初探
執行緒 什麼是執行緒?很多介紹都是 輕量級的程序 不過感覺執行緒的定義一直都比較模糊,沒有找到什麼具體的定義。倒是覺得 程序是資源分配的最小單位,執行緒是排程的基本單位 這個說法算是比較認可的。現在主要探索的就是apue中提供的關於執行緒的相關函式。執行緒標示 和程序一樣,執行緒也有自己的id,li...
初探ArrayList之刪除
1.返回刪除元素的刪除方法 public e remove int index 下標檢查,如果大於陣列的size,丟擲異常 private void rangecheck int index 2.返回乙個boolean值的刪除方法 2.1傳進來null,刪除第乙個值為null的值 注意此時加入了兩個...
雅思之聽力初探
第二問 第六段有乙個很難的片語,fiddle with order about意思是擺弄。第八題,第八段的第3句,重聽了很多次都聽不懂。第八段第四句 第九題,第九段的第二句和第十段的第一句 第十題,第十一段的第二句和第十二段的第一句。第14題是完全得要自己理解的 好多長句,聽得我頭疼 第15題 第1...