我想在一个中使用特征对象Vec.在C++中我可以使一个基类Thing从中导出Monster1和Monster2.然后我可以创建一个std::vector<Thing*>.Thing对象必须存储一些数据,例如x : int, y : int,派生类需要添加更多数据.
目前我有类似的东西
struct Level {
    // some stuff here
    pub things: Vec<Box<ThingTrait + 'static>>,
}
struct ThingRecord {
    x: i32,
    y: i32,
}
struct Monster1 {
    thing_record: ThingRecord,
    num_arrows: i32,
}
struct Monster2 {
    thing_record: ThingRecord,
    num_fireballs: i32,
}
我定义了一个ThingTrait与方法get_thing_record(),attack(),make_noise()等,并实现它们的Monster1和Monster2.
rust ×1