Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ コンストラクタ委譲 | Constructors and Destructors
C++オブジェクト指向プログラミング

bookコンストラクタ委譲

メニューを表示するにはスワイプしてください

コンストラクタ委譲(コンストラクタチェイニングまたはフォワーディングとも呼ばれる)は、同じクラス内であるコンストラクタが別のコンストラクタを呼び出し、共通の初期化ロジックを再利用できる仕組み。

コンストラクタ委譲の構文

コンストラクタ委譲は通常、初期化リストの構文内で使用される。コロン(:)演算子の後に委譲先のコンストラクタを記述し、必要に応じて追加の引数やパラメータを渡す。

user_account.h

user_account.h

copy
1234567891011121314151617
class 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

point.h

copy
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; };
Note
注意

コンストラクタ委譲を使用する際、無限再帰が発生する可能性があります。コンストラクタが再帰的な呼び出しループを避けるように構成されていることを確認してください。

コンストラクタ委譲は、オブジェクト指向プログラミングにおいて多くの利点を提供し、初めて見ると複雑に感じるかもしれませんが、便利に利用できる機能。

question mark

コンストラクタ委譲とは何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  5

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  5
some-alt