c – 什么是聚合类?
我刚刚在第298页的C Primer(第5版)中阅读了以下定义:
本文还提供了一个定义:What are Aggregates and PODs and how/why are they special?. 毕竟我在本书的前几节中读到了封装的价值,我想知道:为什么有人想要使用聚合类? (顺便说一下,这个问题似乎适用于一般的结构:为什么我要公开:默认情况下?) 解决方法
聚合基本上是一个简单的数据集合,没有该类必须保证的任何不变量.由于没有不变量,因此成员的可能值的所有组合都有意义,因此没有必要保护它们是私有的.
这样一个类的一个简单例子就是这样的 struct Point3d { std::array<double,3> coordinates; }; 由于每三倍的双精度是R ^ 3中的一个点,因此隐藏数据没有任何好处. (如果您害怕NaN和无穷大值,这可能不是最好的主意.如果发生这种情况,您可能不希望将其作为聚合.) 聚合类型的另一个例子是 聚合物的一个优点是aggregate initialization. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |