使用生成器类生成对象
Using a generator class to generate objects
本文关键字:对象 更新时间:2023-10-16
我有几个类:
class Item;
class Component;
class BrokenItem;
我需要能够从Component
s的不同组合中生成不同构型的Item
s
这是我所做的:
class ItemGenerator
{
public:
ItemGenerator(const std::vector<Component>& components_);
ItemGenerator(const BrokenItem& brokenItem_);
// and a few more ways to generate
const std::vector<Item>& getGeneratedItems() const;
private:
// vector to store generated objects
// a vector is used because multiple combination of
// configuration can be generated
std::vector<Item> generatedItems_;
}
我打算这样使用它:
std::vector<Component> comps { 1000, 1020, 1040, 1080 };
ItemGenerator ig(comps);
std::vector<Item> vi = ig.getGeneratedItems();
for (auto i : vi)
std::cout << "generated item: " << i << std::endl;
问题:我做错了吗?如果是这样,有什么更好的方法吗?如果不是,我能做些什么让它变得更好?
您可以使用命名空间对类似的函数进行分组:
namespace ItemGenerator
{
std::vector<Item> FromComponents(const std::vector<Component>& components);
Item FromBrokenItem(const BrokenItem& brokenItem);
}
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 将对象数组的引用传递给函数
- 你能重载对象变量名本身返回的内容吗
- C++使用整数的压缩数组初始化对象
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 将对象移动到std::shared_ptr
- 代理对象的常量正确性
- 提升 ASIO 无法识别计时器对象
- 将Ref对象作为类成员
- 将包含C样式数组的对象初始化为成员变量(C++)
- 如何返回一个类的两个对象相加的结果
- 使用std::函数映射对象方法
- 是否需要删除包含对象的"pair"?
- 如何在自删除后将对象设置为nullptr
- 迭代时从向量和内存中删除对象
- 构造对象的歧义
- 使用"std::unordereded_map"映射到"std::list"对象