Ship *ship;
if (newShipType == 0)
{
ship = new SmallShip(gridPosition.x, gridPosition.y,
grid->raw);
}
else if (newShipType == 1)
{
ship = new MediumShip(gridPosition.x, gridPosition.y,
grid->raw);
}
else // 2
{
ship = new BigShip(gridPosition.x, gridPosition.y,
grid->raw);
}
次の行に沿って単純化したいコードがあります。
Ship *ship = new getShipByType[newShipType](gridPosition.x, gridPosition.y, grid->raw);
そのようなことは可能ですか?
Ship getShipByType[3] = {SmallShip, MediumShip, BigShip};
それは与える:
error: expected primary-expression before ‘,’ token
error: expected primary-expression before ‘,’ token
error: expected primary-expression before ‘}’ token
私はそれがコンパイルされるとは思っていませんでした.これを行うためのより簡単な方法を探していたのですが、それは非常に長い試みでした.