首页 > 后端开发 > C++ > 正文

C 11 能否使用未命名类和 Lambda 实现类似 C# 的属性?

Susan Sarandon
发布: 2024-10-28 03:08:02
原创
804 人浏览过

 Can C  11 Achieve C#-Like Properties with Unnamed Classes and Lambdas?

C 11:类似于 C# 的属性?

C# 语法允许简洁的字段 getter 和 setter。 C 11 引入了命名类和 lambda,提供了类似的解决方案。

在 C 11 中实现 C# 属性

要在 C 11 中模拟 C# 属性,您可以使用未命名类和会员访问功能。考虑以下实现:

<code class="cpp">struct Foo {
    struct {
        int value;
        auto &operator=(const int &i) -> decltype(auto) { return value = i; }
        auto operator()() const -> decltype(auto) { return value; }
    } alpha;

    struct {
        float value;
        auto &operator=(const float &f) -> decltype(auto) { return value = f; }
        auto operator()() const -> decltype(auto) { return value; }
    } bravo;
};</code>
登录后复制

使用示例

<code class="cpp">Foo foo;
foo.alpha = 10;
cout << foo.alpha() << endl;</code>
登录后复制

此方法提供了类似 C# 的语法,用于获取和设置具有自动生成名称的属性。

以上是C 11 能否使用未命名类和 Lambda 实现类似 C# 的属性?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!