У Вас два цикла выполняются по очереди, при чем первый цикл отражает последовательно, а воторой просто повторяет id, а значит он будет отражать только последний на котором остановилась предыдущая функция.
Попробуйте вывод id Static прописать внутри цикла где выводится id in Constructor. это будет где-то так:
int main( int argc, char **argv )
{ int ob_max_num = 10;
pOb_type ship(0);
for(int i = 0; i<ob_max_num; i++)
{ Ob ob = Ob(i, 0);
ship.push_back(&ob);
(*ship).renderStatic();
}
return(0);
}
Просто не знаю какое задание, но типа того должно быть, чтобы все выполнялось в одном цикле, т.к. второй цикл выполняется после окончания первого цикла. Если же должно быть все-таки два цикла, тогда попробуйте "i" обнулить, хотя может не помочь