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中文网其他相关文章!