我想运行一个程序的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