ホームページ > バックエンド開発 > C++ > C クラス定義における `= delete` 構文は何をしますか?

C クラス定義における `= delete` 構文は何をしますか?

Linda Hamilton
リリース: 2024-11-11 13:19:03
オリジナル
326 人が閲覧しました

What Does the `= delete` Syntax Do in C   Class Definitions?

謎の = delete: クラス機能の定義

C では、関数宣言に続く = delete 構文は重要な目的を持っています。関数の明示的な削除を意味します。 C 11 で導入されたこの機能は、クラスの動作に対する前例のない制御を提供します。

What = delete が達成します

関数が削除されると、その関数の呼び出しは事実上禁止されます。つまり、クラスのオブジェクトに対して呼び出すことはできません。このアプローチは、コピーや代入操作を禁止したい場合、または特定の変換を防止したい場合に特に便利です。

たとえば、次のコード スニペットでは、

コンストラクター my_class(my_class const & ) は意図的に削除済みとしてマークされており、コピー コンストラクターの作成を妨げています。

コピーと削除を超えた機能の拡張

関数を削除する機能とは別に、C は追加の機能も提供します。関数宣言に追加できる修飾子。

  • = 0: この構文は、派生クラスで実装する必要がある純粋な仮想関数を宣言します。
  • = デフォルト: これは、関数がデフォルトの実装を使用する必要があることを指定します。

クラスの動作のカスタマイズ

示されているように、= delete 構文とその他の修飾子を使用すると、プログラマはクラスの機能を正確に調整できます。関数を削除したり、他の規定を強制したりすることで、クラス設計者はオブジェクトとの対話を効果的にガイドし、オブジェクトが意図したとおりに動作するようにすることができます。

以上がC クラス定義における `= delete` 構文は何をしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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