View Full Version : تفاوت ایجاد ویجت در تابع main و کلاس MainWindow
chikar
جمعه 22 اسفند 1393, 08:36 صبح
سلام
در تابع main می تونیم تابع مون رو به هر شکلی تعریف کنیم ولی چرا در کلاس MainWindow یا کلاس های مشابه باید حتما از اشاره گرها استفاده شود؟
in Main
QPushButton button("Click");
button.show();
//And Or ...
MainWindow w ;
QPushButton button("Click",&w);
w.show();
in MainWindow
QPushButton *button = new QPushButton("Click",this);
//And Or ...
QPushButton *button = new QPushButton("Click");
button->show();
chikar
جمعه 22 اسفند 1393, 11:55 صبح
فکر می کنم جوابم رو گرفتم، آقای مصافی در این تاپیک توضیح دادند
(http://barnamenevis.org/showthread.php?280465-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DB%8C%DA%A9-%DA%A9%D9%84%D8%A7%D8%B3-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-%D8%A7%D8%B4%D8%A7%D8%B1%D9%87-%DA%AF%D8%B1%D8%AF%D8%B1-%D8%AA%D8%A7%D8%A8%D8%B9-Main)
نقل قول : توجه داشته باشید بعد از اجرای سازنده MainWindow این شی (QPushButton) از بین میرود.
سازنده MainWindow یک متد موقت است اما به این نکته توجه داشته باشید متد main تنها متدی است که در تمام طول اجرای برنامه دوام دارد. پس تعریف در تابع main را با یک متد موقت مانند سازنده MainWindow اشتباه نگیرید.
به عبارت سادهتر، اگر قرار است که شی جدید را طوری تعریف کنید که در تمام طول اجرای برنامه دوام داشته باشد باید یک اشارهگر به آن شی (در heap) ایجاد کنید یا اینکه نمونهای از شی (در stack) را فقط در تابع main تعریف کنید.
chikar
یک شنبه 02 فروردین 1394, 20:15 عصر
فکر می کنم بهتره یه مساله ای رو بگم
در نگاه اول سوالی که پرسیدم شاید از دیگاه برخی ها خیلی ساده و آماتورانه باشه و پاسخ آقای مصافی هم کافی
ولی برای فهم درست سوال بالا باید درک قوی از مدیریت حافظه تو c++ داشته باشید، به همین منظور پس از اطلاعاتی که راجع به مدیریت حافظه بدست آوردم سوالات دیگه ای در این زمینه برام مطرح شد، که تصمیم گرفتم تاپیکی رو با این مضمون در تالار c++ ایجاد کنم که با راهنمایی های خیلی خوب و قوی جناب rahnema1 (http://barnamenevis.org/member.php?305905-rahnema1) همراه بود
حالا درخواست من : دوستانی که در مبحث مدیریت حافظه اطلاعات قوی دارند لطف بفرمایند و بیان در این لینک (http://barnamenevis.org/showthread.php?489627-%D8%B3%D9%88%D8%A7%D9%84-%D8%AF%D8%B1-%D9%85%D9%88%D8%B1%D8%AF-%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85-%D8%AD%D8%A7%D9%81%D8%B8%D9%87-text-code-stack-heap-static-global) و بحث ها رو دنبال کنند، نقطه نظرات بدن و یا ایرادات احتمالی رو برطرف کنند، دوستانی هم که اطلاعات کمی دارند هم برای بالا بردن دانششون یه سری بزنند بد نیست
مرسی
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.