Может быть, это не то, что вы имеете в виду, но, поскольку вы не упомянули, для чего это нужно, я полагаю, что один из ответов - это то, что вы сделали бы это, контролируя объем и ход программы.
Например, вы не написали бы такую игру:
initialize player
code for level 1
...
reinitialize player
code for level 2
...
etc
Вместо этого вы будете стремиться к:
void play_level(level_number, level_data) {
Player player; //gets "re-initialized" at the beginning of each level using constructor
//code for level
}
void game() {
level_number = 1;
while (some_condition) {
play_level(level_number, level_data);
++level_number;
}
}
(Очень грубый план, чтобы передать идею, не предназначенный для удаленной компиляции.)