ホームページ > バックエンド開発 > C++ > C ではコンストラクターの連鎖はどのように機能しますか?

C ではコンストラクターの連鎖はどのように機能しますか?

Susan Sarandon
リリース: 2025-01-01 14:41:09
オリジナル
210 人が閲覧しました

How Does Constructor Chaining Work in C  ?

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 サイトの他の関連記事を参照してください。

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