C 如何編寫禁止拷貝的基類

2021-09-20 03:29:20 字數 604 閱讀 5017

//禁止拷貝基類

class noncopyable

~noncopyable() {}

private:

noncopyable(const noncopyable &that) = delete;//delete拷貝建構函式

noncopyable(noncopyable &&that) = delete;//delete移動建構函式

noncopyable &operator=(const noncopyable &that) = delete;//delete拷貝賦值運算子

noncopyable &opetator=(const noncopyable &&that) = delete;//delete移動賦值運算子

};

下面再複習一下移動建構函式和移動賦值運算子

類似拷貝建構函式,移動建構函式的第乙個引數是該類型別的乙個引用。不同於拷貝建構函式的是,這個引用引數在移動建構函式中是乙個右值引用,與拷貝建構函式一樣,任何額外的引數都必須有預設實參。除了完成資源移動,移動建構函式須確保移動後源物件銷毀是無害的。特別是當資源完成移動,源物件須不再指向被移動的資源,這些資源的所有權已經歸屬新建立的物件。

簡單派生類對基類的呼叫編寫

問題設計乙個名為geometricobject的類,用來建模所有的幾何物件。geometricobject類包含 string型別的屬性color,用來表示幾何物件的顏色 預設值 white bool型別的屬性filled,用來表示幾何物件是否填充顏色 預設值 false 乙個無參的建構函式,它建立...

C 的虛基類

虛基類 當在多條繼承路徑上有乙個公共的基類,在這些路徑中的某幾條匯合處,這個公共的基類就會產生多個例項 或多個副本 若只想儲存這個基類的乙個例項,可以將這個公共基類說明為 虛基類 虛基類.在繼承中產生歧義的原因有可能基類是繼承類繼承了基類多次,從而產生了多個拷貝,即不止一次的通過多個路徑繼承類在記憶...

c 的類 虛基類 六

什麼是虛基類 就是他的派生類有兩個或者以上的派生類 通過虛繼承,這樣就可以避免派生類有多個基類的副本 從而減少記憶體消耗 關於繼承可以看我的這一篇新增鏈結描述 include include using namespace std class person class partymember vir...