C でのコンストラクター チェーン
コンストラクター チェーンでは、1 つのコンストラクターがその本体内から別のコンストラクターを呼び出します。これは、C# での初期化の一般的な方法です。さまざまなパラメータを持つオブジェクト。 C には、委任コンストラクターと呼ばれる同様の機能があります。
C 11 以降
C 11 以降のバージョンでは、委任コンストラクターを使用してコンストラクターの連鎖を実現できます。構文は次のとおりです。
class Foo { public: Foo(char x, int y); Foo(int y) : Foo('a', y) {} };
Foo(int y) コンストラクターは、x のデフォルト値を使用して Foo(char x, int y) コンストラクターを呼び出します。
C 03 および以前のバージョン
C 03 は、コンストラクターの委任をサポートしていません。ただし、次の 2 つのシミュレーション方法があります:
class Foo { public: Foo(char x, int y = 0); // combines constructors (char) and (char, int) // ... };
class Foo { public: Foo(char x); Foo(char x, int y); // ... private: void init(char x, int y); }; Foo::Foo(char x) { init(x, x + 7); // ... } Foo::Foo(char x, int y) { init(x, y); // ... } void Foo::init(char x, int y) { // ... }
以上がC ではコンストラクターの連鎖はどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。