首頁 > 後端開發 > C++ > C 函數宣告中的「=delete」是什麼意思?

C 函數宣告中的「=delete」是什麼意思?

Barbara Streisand
發布: 2024-11-22 19:59:16
原創
453 人瀏覽過

What does

理解函數宣告中「=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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板