繁体   English   中英

类中的C ++静态向量

[英]C++ Static vectors in classes

我正在为我的计算机科学班的一个项目开发一个严格的订单系统,我想知道在我的Order类中使用静态向量来包含我所有的订单是否是最佳实践,还是应该在我的主程序中使用它? ? 我仍然在解决所有问题,但基本上,其中哪一个更好,或者我应该探索完全另一种方式:

class Order {
public:
static vector<Order> orders; //should this be private instead?
}

int main(){
vector<Order> orders; //should I just pass this to my methods?

}

确定静态对象列表是否有意义,以及哪个类应容纳这些对象,可能取决于为什么以及如何使用对象列表。 因此,不必对用例做更具体的说明,诸如“做”或“不做”之类的明确答案可能基于观点。

由于缺少用例,以下内容不代表答案。 但是,让我与您分享一些想法:

我建议表达列表的含义/目的,例如有意义地命名变量。 这可以是openOrdersallOrderObjectssharedOrders

与此含义相关联,您可能应该隐藏使用vector的实现细节。 尤其是您甚至将矢量公开给公众的事实使得很难在整个程序中确保其含义。 例如,如果含义是openOrders ,谁会阻止某人将已关闭的订单添加到列表中?

因此,我将隐藏矢量(将其设为私有或至少受保护); 添加“控制”功能以限制访问,对这些功能进行命名以使目的变得显而易见,并限制对列表的访问以确保正确地含义。

根据含义,您还可以重新考虑数据结构vector 也许map更合适,例如,如果订单具有唯一的真实世界标识符(例如与客户共享的订单号),并且您想确保不要两次创建具有相同订单号的对象...

让我在这里停止。 也许您会从社区中获得更多想法。

但是我认为主要问题是:弄清清单的含义/目的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM