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中文網其他相關文章!