首頁 > 後端開發 > C++ > C 中的建構函數鏈如何運作?

C 中的建構函數鏈如何運作?

Susan Sarandon
發布: 2025-01-01 14:41:09
原創
215 人瀏覽過

How Does Constructor Chaining Work in C  ?

C 中的構造函數鏈接

構造函數鏈接,其中一個構造函數從其體內調用另一個構造函數,是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 不支援委託構造函數。不過模擬方法有兩種:

  • 預設參數:將多個建構子與預設參數值組合起來。
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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板