コンストラクタチェーンの理解は、クラス内に複数のコンストラクタがある場合(オーバーロードされたコンストラクタ)、そのうちの1つが別のコンストラクタを呼び出そうとした場合、 このプロセスはCONSTRUCTOR CHAINING C++ではサポートされていません。 オンライン資料を読みながら最近、私はC++でのコンストラクタのチェーン
...それはこのように書きます....この段落に出くわしたあなたはあなたが戻って再初期化クラスにメンバ関数を書きたい状況で自分自身を見つけることがデフォルト値に変更します。これを行うコンストラクタをすでに持っている可能性が高いため、メンバ関数からコンストラクタを呼び出そうと思うかもしれません。前述のように、C++ではチェインのコンストラクタ呼び出しは不正です。関数内のコンストラクタからコードをコピーすることができますが、これは機能しますが、重複するコードにつながります。この場合の最良の解決策は、コードをコンストラクタから新しい関数に移動し、コンストラクタに関数を呼び出してデータを初期化する作業をさせることです。
コンストラクタを呼び出すメンバ関数もコンストラクタチェインになりますか? このトピックについては、C++で詳しく説明してください。
私はそうではないと思います。そして、コンストラクタを連想させることはコンストラクタをコールすると思うかもしれないと考えるかもしれないと言った直後に、コンストラクタの連鎖は不正です。値。しかし、誰が知っている、あなたは記事を引用していないか、それがコンストラクタチェーンを記述している箇所を引用しているので、別のところで既に説明したような珍しい意味で使っているかもしれません。 –
違法ではありません。メンバーからコンストラクタを呼び出すと、呼び出しを行う 'this'オブジェクトではなく、構築が適用される一時オブジェクトを作成する効果があります。 –
@Amardeep:コンストラクタの連鎖は「違法」ではなくC++ 03では「不可能」と言う方がより正確でしょう。それを行うことを記述するための構文は存在しません。あなたが言うように、通常の定義によってコンストラクタを呼び出すことは、コンストラクタチェーンと全く同じことではありません。 –