这是我最后一个问题的后续,其中我需要一组对象,它们是一个基类的子类。有人建议我尝试 dynamic_cast 但速度在这个项目中非常重要。
这基本上就是我所追求的。
class Object
{
protected:
int id;
};
class Bike: public Object
{
public:
bike();
private:
int bells;
};
class Car: public Object
{
public:
void drive();
private:
int wheels;
};
我需要这些对象的数组,所以我决定使用基类。
// Imagine I have 10 objects and don't know what they will be
Object* objects[10];
// Let's make the first object
objects[0] = new Car;
有人告诉我动态铸造是个好主意。问题是速度很重要,我有一些实例需要执行以下操作:
- Car 8 引用索引值为 3 的自行车。
没有dynamic_casting还有其他解决方法吗?
编辑:如果我用一堆子类填充数组,我怎么能在特定索引处访问子类的数据。换句话说,想象一辆自行车的索引为 8。我怎么能从该对象中仅使用数组和索引获取 int 铃声。