我有一个名为 Cell 的模板类,如下所示:-
template<class T>class Cell
{
string header, T data;
}
现在我想要另一个名为 Row 的类。 Row 将有一个名为 Cells 的向量,这样我就可以将 Cell 和 Cell 类型的元素添加到该向量中。可能吗?
如果是这样,我该怎么做?提前致谢。
原文由 Jakir Hossain 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个名为 Cell 的模板类,如下所示:-
template<class T>class Cell
{
string header, T data;
}
现在我想要另一个名为 Row 的类。 Row 将有一个名为 Cells 的向量,这样我就可以将 Cell 和 Cell 类型的元素添加到该向量中。可能吗?
如果是这样,我该怎么做?提前致谢。
原文由 Jakir Hossain 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
使用您提供的额外细节,前两个答案将不起作用。您需要的是一种称为单元变体的类型,然后您可以拥有这些类型的向量。例如:-
然而,添加新类型是一件很痛苦的事情,因为它需要大量代码来维护。另一种方法可以使用具有公共基类的单元格模板:-
这可能会更好,因为您最初更新的代码较少以添加新的单元格类型,但您必须在单元格向量中使用指针类型。如果您按值存储单元格
vector <ICell>
,那么您将由于 对象切片 而丢失数据。