为什么C++标准没有像C#那样添加“属性”?

7

在这里的properties指的是C#风格的带有getter和setter的属性。

我想知道为什么它们不是C++语言的一部分。我假设在制定规范时必定讨论过这样的特性,因此决定不将其包含在语言中肯定是一个深思熟虑的决定。


1
你无疑是想说“有意识的”,但是没错,“认真负责”的确是它们未被包括在内的原因。它们是个坏主意,拒绝它们是正确的决定。 - Jerry Coffin
3
由Borland提出,但被拒绝。请见此处:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1384.pdf - Roddy
2
obj.x = 3 中,x 实际上可以是一个类类型,该类类型具有重载的 = 运算符,而该运算符知道如何调用 obj 上的特定方法来存储值。该方法可以通过指向成员语法在构造函数调用中命名为 x。或者,我认为,该方法甚至可以是 x 类的实例化中的模板参数。当然,x 还可以支持被评估,这将转换为不同的函数调用。 - Kaz
@Roddy,我想那就是情况,你有关于对提案的回复的参考资料吗?那是我感兴趣的部分。 - Matt
1
从一些谷歌搜索中,似乎我能找到的最接近的就是下面这个。忽略末尾的代码,它确实可以作为反对它们包含的一个很好的论点:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1615.pdf - Matt
显示剩余8条评论
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接