sd.CSharpProgrammer
پنج شنبه 26 آبان 1390, 16:23 عصر
سلام دوستان
من تا الان سی شارپ کار میکردم ولی به این نتیجه رسیدم که برم سراغ سی پلاس پلاس و بویژه کیوت!
ولی همیشه تو مبحث اشاره گرها ابهاماتی داشتم که هیچوت هیچ منبعی نتونسته اونا رو رفع کنه. با توجه به اینکه در کیوت از اشاره گرها به وفور استفاده میشه خواهش میکنم به سوالاتم پاسخ بدین تا بتونم یادگیری کیوت رو شروع کنم.
1) چرا بعضی جاها از * استفاده میشه و بعضی جاها نه؟! ما از کجا باید تشخیص بدیم کجا ازش استفاده کنیم؟ تو سایت یه چندتا تاپیک در مورد این مساله بود که اتفاقاً تو بعضی ها شما هم جواب داده بودین ولی با خوندنشون به نتیجه نرسیدم!!
2) من آخرش نفهمیدم برای استفاده از اعضای یک کلاس (متغیرها، توابع عضو و ...) باید از نقطه استفاده کرد یا :: یا <- ؟؟؟؟؟ این مساله برام کمی گیج کننده است! :گیج:
مثال زیر رو ببینید :
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QPushButton *button = new QPushButton("Quit");
QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit()));
button->show();
return app.exec();
}
تو مثال بالا متد connect با عملگر :: فراخوانی شده ولی متد show با عملگر <- !!!!! برای نقطه هم همچین مواردی هست.
3) مگه تو سی پلاس پلاس وقتی با new یه آبجکت میسازیم نباید آخرش با delete اون شی رو از بین ببریم؟! چرا تو مثال بالا (و تقریباً همه سورسهای کیوتی که دیدم) آبجکت button بصورت دستی تخریب نشده؟!
4) و سوال آخر : در بعضی جاها پارامتری از یک متد بصورت اشاره گر تعریف شده ولی بعضی وقتها متغیری رو بصورت & بهش پاس میدن بعضی جاها معمولی. دلیلش چیه؟! فکر کنم قضیه reference values باشه، درست حدس زدم؟!
من تا الان سی شارپ کار میکردم ولی به این نتیجه رسیدم که برم سراغ سی پلاس پلاس و بویژه کیوت!
ولی همیشه تو مبحث اشاره گرها ابهاماتی داشتم که هیچوت هیچ منبعی نتونسته اونا رو رفع کنه. با توجه به اینکه در کیوت از اشاره گرها به وفور استفاده میشه خواهش میکنم به سوالاتم پاسخ بدین تا بتونم یادگیری کیوت رو شروع کنم.
1) چرا بعضی جاها از * استفاده میشه و بعضی جاها نه؟! ما از کجا باید تشخیص بدیم کجا ازش استفاده کنیم؟ تو سایت یه چندتا تاپیک در مورد این مساله بود که اتفاقاً تو بعضی ها شما هم جواب داده بودین ولی با خوندنشون به نتیجه نرسیدم!!
2) من آخرش نفهمیدم برای استفاده از اعضای یک کلاس (متغیرها، توابع عضو و ...) باید از نقطه استفاده کرد یا :: یا <- ؟؟؟؟؟ این مساله برام کمی گیج کننده است! :گیج:
مثال زیر رو ببینید :
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QPushButton *button = new QPushButton("Quit");
QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit()));
button->show();
return app.exec();
}
تو مثال بالا متد connect با عملگر :: فراخوانی شده ولی متد show با عملگر <- !!!!! برای نقطه هم همچین مواردی هست.
3) مگه تو سی پلاس پلاس وقتی با new یه آبجکت میسازیم نباید آخرش با delete اون شی رو از بین ببریم؟! چرا تو مثال بالا (و تقریباً همه سورسهای کیوتی که دیدم) آبجکت button بصورت دستی تخریب نشده؟!
4) و سوال آخر : در بعضی جاها پارامتری از یک متد بصورت اشاره گر تعریف شده ولی بعضی وقتها متغیری رو بصورت & بهش پاس میدن بعضی جاها معمولی. دلیلش چیه؟! فکر کنم قضیه reference values باشه، درست حدس زدم؟!