gpt4 book ai didi

c++ - 继承和对象的单例或静态数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:50:41 25 4
gpt4 key购买 nike

我正在用 C++ 编写一个小程序,我面临着如何实现某些东西的选择。

针对我面临的特定问题,我找到了两种可能的实现方式,并希望您就其中一种是否比另一种“更好”提出建议。

我有一门课,我们称它为 Letter。我想创建不同的“对象”:A、B、C、D...

这些对象中的每一个都将在我的软件中多次使用(作为其他对象的属性)。 A 将始终相同,因此无需在每次需要 A 时都创建一个 A 对象。

  1. 我为每个继承自 Letter 的 A、B、C... 创建了一个类。这些类中的每一个都是单例。通过这样做,我将能够通过调用 A::getInstance() 静态方法在软件其余部分的任何位置使用 A 对象。

  2. 我将每个 A、B、C、D 创建为 Letter 类的一个对象,并将这 4 个对象存储在一个静态数组中。在我的程序的其余部分,我将使用该数组的内容。为了轻松访问这些对象,我可能会创建一个枚举并将对象存储在映射而不是数组中。

您认为这些解决方案中的一个应该优于另一个吗?

正如我之前所说,欢迎任何替代建议:-)

问候

最佳答案

此处的各个方面可能会影响您的决定。

有些人不喜欢单例,因为单例是全局对象,不喜欢全局对象。如果您的对象应该是全局性的,那么将其设为全局性。

有些人认为,如果你有一个单例对象,那么它应该是该类的唯一实例。但是,如果您有一个类的多个不同实例,每个实例的行为都像单例一样,创建多个子类只是为了确保一个类只有一个实例,那是毫无意义的。 (Cocoa 编程中的一个示例是 NSCharacterSet,其中您有不同的实例,例如 NSCharacterSet 代表字母,一个代表数字,一个代表作为 Java 标识符的一部分有效的字母,等等)。

如果你想访问数组的第 n 个元素,你应该只创建一个数组,并且相同的语句可以引用不同的数组元素。看起来您想要具有不同目的的不同对象;使它们成为一个数组将再次毫无意义。

关于c++ - 继承和对象的单例或静态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29590039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com