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
我真的不指望它來編譯,只是爲了尋找這樣的一個簡單的方法,它只是一個很長的出手嘗試。
閱讀「工廠模式」。它可能會幫助你。 – arne
OP當然應該閱讀「造船廠模式」? –
總之;沒有。但正如arne說你應該考慮工廠模式。 – dutt