理解函數宣告中「=delete」的意思
在C 11 中,「=delete」語法用於刪除功能,有效防止其使用。它通常用於禁止複製或限制某些轉換。
刪除複製建構子和賦值運算子
也許「=刪除」最常見的用例是禁止複製。例如,如果我們有一個名為“my_class”的類,我們不想被複製,我們可以聲明:
class my_class { public: ... my_class(const my_class &) = delete; ... };
此聲明可防止編譯器為“生成預設的複製構造函數和賦值運算符」 my_class."
防止不需要的轉換
「=」的另一種用法delete」是為了禁止特定的型別轉換。例如,如果我們有一個類別“Z”,我們只想從“long long”值構造,我們可以使用“=刪除”來防止較小類型的轉換:
struct Z { public: ... Z(long long); // can initialize with a long long Z(long) = delete; // but not anything less };
其他函數修飾符
除了「= 0」(將函數設為純虛擬)和「= delete」(刪除function),C中沒有其他函數修飾符。但是,其他關鍵字(例如“override”和“final”)可用於修改虛擬函數的行為。
以上是C 函數宣告中的「=delete」是什麼意思?的詳細內容。更多資訊請關注PHP中文網其他相關文章!