コンストラクタ委譲
メニューを表示するにはスワイプしてください
コンストラクタ委譲(コンストラクタチェイニングまたはフォワーディングとも呼ばれる)は、同じクラス内であるコンストラクタが別のコンストラクタを呼び出し、共通の初期化ロジックを再利用する仕組み。
コンストラクタ委譲の構文
コンストラクタ委譲は通常、初期化リストの構文内で使用される。コロン(:)演算子の後に委譲先のコンストラクタ、その後に渡す必要がある追加の引数やパラメータを記述する。
user_account.h
1234567891011121314151617class UserAccount { public: // Primary constructor UserAccount(int userId, int accessLevel) : userId(userId), accessLevel(accessLevel) { // Constructor body } // Delegating constructor (default accessLevel) UserAccount(int userId) : UserAccount(userId, 0) { // Constructor body } int userId; int accessLevel; };
コンストラクタ委譲において初期化リストの使用は必須ではありませんが、明確さとパフォーマンスの観点から推奨されます。必要に応じて、別のコンストラクタからオーバーロードされたコンストラクタを呼び出すことも可能です。
point.h
123456789101112131415#include <iostream> class Point { public: // Delegating constructor to initialize default point at origin Point() { Point(0, 0); } // Main constructor Point(int x, int y) : x(x), y(y) {} int x, y; };
注意
コンストラクタ委譲を使用する際、無限再帰が発生する可能性があります。コンストラクタが再帰的に呼び出されるループを避けるように構成してください。
コンストラクタ委譲は、オブジェクト指向プログラミングにおいて多くの利点を提供し、初めて見ると複雑に感じるかもしれませんが、便利に利用できる機能。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 13
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 1. 章 13