我有结构来描述项目中各种对象的位置。一些对象由两个或三个等索引索引。
在这个简单的示例中,我展示了 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
呢?我需要这样做。