我有结构来描述项目中各种对象的位置。一些对象由两个或三个等索引索引。
在这个简单的示例中,我展示了 3 种类型的 position A,B并且C它们都继承自Position其中是空的。我继承自,Position以便我可以在接受Position参数的函数中传递这些位置。我不使用单个Position结构的原因是我必须将所有成员都
int a,b,c,d放入其中,并且对于某些对象,大多数时候我只会使用a,b
例如:
struct Position {
};
struct A : public Position {
int a,b,c,d;
};
struct B : public Position {
int a,b,c;
};
struct C : public Position {
int a,b;
};
问题是,我有这样的功能:
City &getCity(const Position &p) {
const B &pos = (const B &)p;
return rawSheets[pos.a].countries[pos.b].cities[pos.c];
}
如果我将 type 的位置传递给这个函数,一切都会好起来的B,但是如果我传递 typeA呢?我需要这样做。