我想運行一個程序的1,000次迭代,所以在main中設置一個1000的計數器。我需要在每次迭代之後重新初始化各種變量,並且由於類構造函數已經寫出了所有初始化 - 我決定在每次迭代之後調用它,每次迭代的結果都存儲在main變量中。調用構造函數重新初始化變量似乎不起作用?
但是,當我調用構造函數時,它沒有任何作用......我花了一段時間才弄清楚 - 但它並沒有重新初始化任何東西!
我創建了一個完全像構造函數一樣的函數 - 所以對象會有自己的版本。當我打電話時,它會按我的預期重新初始化一切。
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
*/
}
...可能有人試圖解釋什麼,我做錯了,或者沒有工作,或者是愚蠢的或你有什麼?我的意思是 - 從心理上講,我只是想 - 廢話,我可以調用這個構造函數,並重新初始化所有這些東西。構造函數(理想情況下)只有在創建對象時才調用?
*放置新*似乎是可能的。 http://stackoverflow.com/questions/6868363/how-to-recall-a-constructor-of-an-initialised-object – Eonil 2013-07-17 22:42:58
'MyClass = Class();'? – 2015-06-05 20:53:21