首页 > 后端开发 > C++ > 如何在 C 中实现构造函数链?

如何在 C 中实现构造函数链?

Linda Hamilton
发布: 2025-01-02 17:30:39
原创
810 人浏览过

How Can I Implement Constructor Chaining in C  ?

我可以利用 C 中的构造函数链吗?

构造函数链是 C# 开发人员熟悉的概念,允许执行来自其他。这提供了一种有效的方法来初始化父类及其派生类中的对象。

C 11 及更高版本:构造函数链

在 C 11 及更高版本中,构造函数通过委托构造函数支持链接。语法与 C# 略有不同:

class Foo {
public:
  Foo(char x, int y) {}
  Foo(int y) : Foo('a', y) {}
};
登录后复制

此代码定义了两个构造函数:一个采用 (char x, int y),另一个采用 (int y)。第二个构造函数使用 this 指针调用第一个构造函数,将 x 初始化为 'a'。

C 03:构造函数模拟

不幸的是,C 03 本身不支持构造函数链接。不过,有两种方法可以模拟其效果:

  • 默认参数:使用默认参数组合多个构造函数。
class Foo {
public:
  Foo(char x, int y = 0); // This combines (char) and (char, int) constructors.
};
登录后复制
  • 初始化方法:通过初始化分享常用代码
class Foo {
public:
  Foo(char x);
  Foo(char x, int y);

private:
  void init(char x, int y);
};

Foo::Foo(char x) : Foo(x, int(x) + 7) {} // Calls init(x, int(x) + 7).

Foo::Foo(char x, int y) : Foo(x, y) {} // Calls init(x, y).

void Foo::init(char x, int y) {}
登录后复制

通过参考 C FAQ 以获得进一步指导,您可以使用这些方法有效地模拟 C 03 中的构造函数链。

以上是如何在 C 中实现构造函数链?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板