Volevo eseguire 1.000 iterazioni di un programma, quindi impostare un contatore per 1000 in main. Avevo bisogno di reinizializzare varie variabili dopo ogni iterazione, e dato che il costruttore della classe aveva già tutte le inizializzazioni scritte - ho deciso di chiamarlo dopo ogni iterazione, con il risultato di ogni iterazione memorizzata in una variabile in main.Chiamare un costruttore per reinizializzare le variabili non sembra funzionare?
Tuttavia, quando ho chiamato il costruttore, non ha avuto alcun effetto ... mi ci è voluto un po 'per capire - ma non ha reinizializzato nulla!
Ho creato una funzione esattamente come il costruttore, quindi l'oggetto avrebbe una propria versione. Quando l'ho chiamato, ha reinizializzato tutto come mi aspettavo.
int main()
{
Class MyClass()
int counter = 0;
while (counter < 1000)
{ stuff happens }
Class(); // This is how I tried to call the constructor initially.
// After doing some reading here, I tried:
// Class::Class();
// - but that didn't work either
/* Later I used...
MyClass.function_like_my_constructor; // this worked perfectly
*/
}
... Qualcuno potrebbe cercare di spiegare il motivo per cui quello che ho fatto era sbagliato, o non ha funzionato, o era sciocco o quello che hai? Voglio dire - mentalmente, ho appena immaginato - merda, posso chiamare questo costruttore e avere tutte queste cose reinizializzate. I costruttori (idealmente) vengono chiamati SOLO quando viene creato un oggetto?
Sembra possibile con * posizionamento nuovo *. http://stackoverflow.com/questions/6868363/how-to-recall-a-constructor-of-an-initialised-object – Eonil
'MyClass = Class();'? –