Tôi muốn chạy 1.000 lần lặp của một chương trình, vì vậy hãy đặt bộ đếm cho 1000 trong chính. Tôi cần phải khởi tạo lại các biến khác nhau sau mỗi lần lặp, và kể từ khi hàm dựng đã có tất cả các khởi tạo đã được viết ra - tôi quyết định gọi sau mỗi lần lặp, với kết quả của mỗi lần lặp được lưu trữ trong một biến trong chính.Gọi một hàm tạo để khởi tạo lại các biến dường như không hoạt động?
Tuy nhiên, khi tôi gọi cho nhà xây dựng, nó không có tác dụng ... tôi mất một thời gian để tìm ra - nhưng nó đã không khởi tạo lại bất cứ điều gì!
Tôi đã tạo một hàm chính xác như hàm tạo - vì vậy đối tượng sẽ có phiên bản riêng của nó. Khi tôi gọi nó, nó đã khởi tạo lại mọi thứ như tôi mong đợi.
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
*/
}
... Ai đó có thể giải thích lý do tôi làm sai hoặc không làm việc hoặc ngớ ngẩn hoặc bạn có gì? Ý tôi là - về mặt tinh thần, tôi chỉ nghĩ - crap, tôi có thể gọi nhà xây dựng này và có tất cả những thứ này được khởi tạo lại. Các hàm tạo (lý tưởng) CHỈ được gọi khi một đối tượng được tạo ra?
Có vẻ như có thể với * vị trí mới *. http://stackoverflow.com/questions/6868363/how-to-recall-a-constructor-of-an-initialised-object – Eonil
'MyClass = Class();'? –