ホームページ > バックエンド開発 > C++ > C でオブジェクトを独自のコンストラクターに渡すことはできますか?

C でオブジェクトを独自のコンストラクターに渡すことはできますか?

Linda Hamilton
リリース: 2024-11-11 00:36:02
オリジナル
625 人が閲覧しました

Can You Pass an Object to Its Own Constructor in C  ?

オブジェクトを独自のコンストラクターに渡すことができますか?

質問:

C 内クラスのコンストラクターにオブジェクトを引数として渡すことは許容されますか?

答え:

驚くべきことに、型破りに見えるにもかかわらず、C 標準ではオブジェクトを独自のコンストラクターに渡すことが許可されています。これは、初期化されていないオブジェクトが参照のバインドとアドレスの取得に使用できると記載されている欠陥レポート 363 で説明されています。

説明:

C 14 のセクション 3.8標準では、オブジェクトの有効期間が開始または終了する前に、そのオブジェクトを参照するすべての glvalue を使用できるが、その目的は限定されていることが明確になっています。これには、オブジェクトの値に依存しない参照のバインドとアドレスの取得が含まれます。

実際的に言えば、「初期化されていない」変数に関する Clang の警告で示されているように、コンストラクターで初期化されていないオブジェクトを使用すると、警告が発生する可能性があります。ただし、不定の値は生成されないため、これらの警告は未定義の動作を示すものではありません。

未定義の動作が発生する例としては、「int x = x」などの代入による自己初期化が挙げられます。

結論:

オブジェクトを独自のコンストラクターに渡すのは珍しいように思えるかもしれませんが、これは有効ですC 標準に基づいて練習し、構築プロセス中に初期化されていないオブジェクトとの限定的な対話を許可します。

以上がC でオブジェクトを独自のコンストラクターに渡すことはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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