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