「= delete」は C での関数またはコンストラクターの使用をどのように妨げますか?

Barbara Streisand
リリース: 2024-11-16 03:59:02
オリジナル
417 人が閲覧しました

How Does

= delete を使用した C での関数の削除

C では「= delete」構文が導入されており、開発者は特定の関数や関数を明示的に禁止できます。コンストラクターが使用されないようにします。これは、クラス内の関数またはコンストラクター宣言に「= delete」を追加することで実現されます。

次の例を考えてみましょう:

class my_class
{
    ...
    my_class(my_class const &) = delete;
    ...
};
ログイン後にコピー

= delete の意味

関数またはコンストラクターの宣言のコンテキストでは、「= delete」は次の目的を果たします。

  • コンパイラーがその特定の関数に対してコピー コンストラクターまたはコピー代入演算子を生成するのを防ぎます。 constructor.
  • 意図しないコピーや代入操作を防ぐために、特定のコンストラクターの使用を制限するために使用できます。

追加の修飾子

Apart 「= delete」から、C には、関数またはコンストラクターの使用を明示的に禁止するという同じ目的を果たす他の修飾子はありません。ただし、クラスで明示的に定義されていない場合、「= 0」(C のデフォルトのコンストラクター定義) と「=default」(C 11 で導入) を使用して、コンストラクターとメンバー関数のデフォルト実装を提供できることに注意してください。

以上が「= delete」は C での関数またはコンストラクターの使用をどのように妨げますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート