如果我有一个带有派生类的抽象类并且不使用 STL 数据结构类,如何以多态方式创建对象的动态数组?(向量、列表等)
对象的静态数组
TwoDimensionShape *shapes[2];
shapes[0] = &Triangle("right", 8.0, 12.0);
shapes[1] = &Rectangle(10);
我知道我不能这样做,因为你不能创建抽象类的对象:
cin >> x;
TwoDimensionShape *s = new TwoDimensionShape [x];
编辑:
感谢尼克,这有效:
int x = 5;
TwoDimensionShape **shapes = new (TwoDimensionShape*[x]);