【发布时间】:2014-08-13 06:46:33
【问题描述】:
是否可以有某种不同结构的列表/数组/向量?
例如在MFC 中有CObject 和CArray 但没有MFC:
我可以做类似的事情
std::vector<void*> pVec;
{
MYSTRUCT m = new MYSTRUCT;
pArr.push_back(m);
// looks fine here
}
//what is in my vector now?
有什么可以处理的吗?
【问题讨论】:
-
您可以从基础
class继承所有涉及的struct,并利用动态多态性。 -
容器中你想要的结构有关系吗?可以使用继承吗?在容器中需要不同(不相关的)结构对我来说似乎是一个设计缺陷。你怎么知道某个指针是什么类型的结构?
-
@JoachimPileborg 他们是不同的,但肯定可以建立某种关系
-
不要仅仅试图通过继承来强制结构关联,除非它们确实如此。另外,您可能想阅读about the XY problem,因为您现在要求我们帮助您解决您已经决定的解决方案,但您实际上并没有告诉我们您想解决什么问题是。可能还有其他的,或许更好的解决方案。不,问题不在于“如何将不相关的结构放入容器中”,而是让您想出解决方案“将不相关的结构放入容器中”的原因。
-
就目前的普遍性而言,这个问题很可能是现有问题的重复:stackoverflow.com/questions/6274136/…、stackoverflow.com/questions/3475030/… 是两个候选者。