0

可能重复:
如何在 C++ 容器中存储不同类型的对象?

读取文本文件后...

以下信息可用

Point2D, [3, 2]
Line3D, [7, 12, 3], [-9, 13, 68]
Point3D, [1, 3, 8]
Line2D, [5, 7], [3, 8]
Point2D, [3, 2]
Line3D, [7, -12, 3], [9, 13, 68]
Point3D, [6, 9, 5]
Point2D, [3, 2]
Line3D, [70, -120, -3], [-29, 1, 268]
Line3D, [25, -69, -33], [-2, -41, 58]
Point3D, [6, 9, -50]

由分隔符逗号分隔的第一个数据是类名。对于 4 个班级中的每一个

Point2D,Line3D,Point3D,Line2D

我如何根据他们的类手段将它们存储到相关的对象中..

当它读取第一行时

Point2D, [3, 2]

它将其存储为带有 Data [3, 2] 的 Point2D 对象

但问题是我应该选择什么数据集,Vector、Set、Map 或 List

我当时正在考虑实际创建一个数据集,但我不能使用 new Point2D(); 自从

Point2D is parent of Point3D
Line2D is parent of Line3D

并且没有Point2D和Line2D的父类。我怎么能喜欢在像 Vector 这样的数据集中创建它们的对象

所以 Vector[0] 是带有数据 [3,2] 的 Point2D 类,然后 Vector[1] 是带有数据 [7, 12, 3], [-9, 13, 68] 的 Line3D 类

感谢您的帮助。!

4

0 回答 0