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