C 11:类似于 C# 的属性?
C# 语法允许简洁的字段 getter 和 setter。 C 11 引入了命名类和 lambda,提供了类似的解决方案。
在 C 11 中实现 C# 属性
要在 C 11 中模拟 C# 属性,您可以使用未命名类和会员访问功能。考虑以下实现:
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;
};
用法示例
Foo foo;
foo.alpha = 10;
cout 此方法提供了类似 C# 的语法,用于使用自动生成的名称获取和设置属性。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3