C++ 动态指定类型怎么处理?
我想实现的效果如下:
class pic
{
pic() {}
long getId() {return id; }
private:
long id;
}
class pic_01 : public pic
{
pic_01() {}
...
private:
...
}
class pic_02: public pic
{
pic_02() {}
...
private:
...
}
class pic_03: public pic
{
pic_03() {}
...
private:
...
}
class pic_04: public pic
{
pic_04() {}
...
private:
...
}
void function (long id)
{
class A db;
switch (long % 4)
{
case 0:
pic_01 p01 = db->load<pic_01>(id);
break;
case 1:
pic_02 p02 = db->load<pic_02>(id);
break;
case 2:
pic_03 p03 = db->load<pic_03>(id);
break;
case 3:
pic_04 p04 = db->load<pic_04>(id);
break;
}
}
采用什么技术把 switch case 简化啊?