在C++中,如果不顯式定義一個類的析構函數、拷貝構造函數和拷貝賦值運算符重載函數,編譯器會自動生成默認的版本。這些函數被稱為默認的刪除函數。
如果想要使用默認的刪除函數,只需在類的聲明中聲明這些函數,并在定義中不做任何操作即可。例如:
class MyClass {
public:
// 默認的析構函數
~MyClass() = default;
// 默認的拷貝構造函數
MyClass(const MyClass& other) = default;
// 默認的拷貝賦值運算符重載函數
MyClass& operator=(const MyClass& other) = default;
};
在這個例子中,我們使用= default
來聲明默認的析構函數、拷貝構造函數和拷貝賦值運算符重載函數。
注意,如果類中包含了用戶自定義的析構函數、拷貝構造函數或拷貝賦值運算符重載函數,編譯器不會為其生成默認的刪除函數。