PDA

View Full Version : gc در کیوت



pswin.pooya
یک شنبه 03 شهریور 1392, 15:41 عصر
سلام

کیوت راهی برای جمع آوری زباله garbage collector داره؟

میشه از QObject به عنوان یه چیزی مثل جمع آوری زباله و .. استفاده کرد؟

حامد مصافی
یک شنبه 03 شهریور 1392, 16:24 عصر
خود کیوت تا حدی این کار رو انجام میده. اگر شما در یک کلاس که از QObject مشتق شده یک شی از مشتقات QObject ایجاد کنید و خصوصیت parent آن را برابر با کلاس خود قرار دهید هنگام حذف کلاس شما کل فرزند‌های آن نیز از بین خواهند رفت

omidshaman
یک شنبه 03 شهریور 1392, 16:53 عصر
البته ,QSharedPointer ,QPinter,QScopedPointer ...و کلاس های خود C++‎11 هم هستن که در صورت استفاده خودکار حافظه رو delete میکنن.

pswin.pooya
سه شنبه 05 شهریور 1392, 00:36 صبح
سلام
خودم قبلا smart_ptr رو برای انجینم پیاده کردم و تا حدی هم با c++11 آشنایی دارم. منتها مشکل من اینه که میخوام کاملا هماهنگ با فریم ورک کیوت باشه. یعنی تا حد امکان میخوام از کلاسهای خودش استفاده کنم. فکر نکنم این سیستم مدیریتی QObject برای همه چی مناسب باشه. امکان داده کلاس پدر نابود شه اما برنامه همچنان از فرزندهاش استفاده کنه. (الیته بیشتر یه اشتباه طراخی هست) اما خب موردهایی پیدا میشن که مجبوری اینجوری باشن. یا امکان داره کلاس پدر تا آخر عمر برنامه بمونه اما دیگه از اون کلاس فرزند استفاده نکنه و تغییر فرزند هم دست برنامه نویس نهایی باشه. (توی این حالت smart_ptr ها گزینه خوب هستند. منتها مشکل اینجاست که اونها رو هم باید برنامه نویس نهایی کنترل کنه )