【发布时间】:2021-10-07 09:29:35
【问题描述】:
我有两个类之间的一对多关系,其中拥有的类可以是多个类型。数据模型要求超类中的关系可以在子类中“插入”。
关系的每一端都是这样的:
weak_ptr<Element> owner;
unordered_set<shared_ptr<Element>> ownedElements;
在超类Element上,有一个函数:
unordered_set<shared_ptr<Element>> ownedElements();
在子类上也有类似的功能:
unordered_set<shared_ptr<SubElement>> ownedSubElements();
在ownedSubElements() 的实现中,我想将unordered_set<shared_ptr<Element>> 转换为unordered_set<shared_ptr<SubElement>>。
这可能吗?
【问题讨论】:
-
您认为为什么需要这样做?您尝试实现这一目标的实际目标是什么?
-
好问题。也许我不应该尝试这样做。我正在尝试实现具有此子集概念的现有模型设计。另一种方法是忽略父关系函数(将它们视为抽象),而只实现叶函数。这可能会导致一些功能损失,但可能不需要它,它确实简化了模型。