PDA

View Full Version : کمک فوری ! چند تا مشکل تو یکی از برنامه های کتاب آقای قمی



hercules_3d
چهارشنبه 23 فروردین 1385, 15:18 عصر
سلام
من تو برنامه ی زیر یه چند تا مشکل اساسی دارم :گریه: این برنامه مربوط به مثال 8-3 از کتاب آقای قمی هستش.
1.چرا در تعریف مجدد عملگرهای ++ و >> و =+ در توابع مربوط به اونها (opratot++ , oprator << , oprator +=)کاری کرده که این توابع مرجع رو به عنوان مقدار بازگشتی برگردونه ؟ در واقع این کار به چه دردی میخوره ؟
2. وجود const در پارامتر دوم تابع oprator<<(ostream & ,const date & ) به چه دردی میخوره؟
3. وجود const در ابتدای تابع oprator+= به چه دردی میخوره؟
با تشکر

hercules_3d
چهارشنبه 23 فروردین 1385, 16:26 عصر
راستی یه سوال دیگه
چرا پارمتر ها ی تابع (oprator <<)<< رو مرجع تعریف کرده؟

mzjahromi
چهارشنبه 23 فروردین 1385, 16:40 عصر
1.چرا در تعریف مجدد عملگرهای ++ و >> و =+ در توابع مربوط به اونها (opratot++ , oprator << , oprator +=)کاری کرده که این توابع مرجع رو به عنوان مقدار بازگشتی برگردونه ؟ در واقع این کار به چه دردی میخوره ؟

من فکر میکنم بخاطر اینه که بشه از چند تا اپراتور استفاده گرد
مثل زیر


cout<<"this is the first string"<<"and this is the second one"

hercules_3d
چهارشنبه 23 فروردین 1385, 18:18 عصر
میشه بیشتر توضیح بدین

mzjahromi
چهارشنبه 23 فروردین 1385, 18:29 عصر
من که نمونه نوشتم
ببینید اینو داریم


cout<<"this is the first string"

وقتی که خروجی این کدهمون مرجع باشه یعنی مثل ایه که کل این خط دوباره عملکرد Cout رو داره
یا به عبارتی اگر خروجی اش مرجع اولیه نباشه شما نمی تونید مجددا پشت سر اون دستور


<<"and this is the second one"

رو بنویسید.
مثلا


cin.get(a)

رو میشه به شکل زیر هم استفاده کرد


cin.get(a)>>b

چون خروجی اش از Cin هست ولی


a=cin.get()

رو نمیشه به شکل فوق استفاده کرد چون خروجی اش cin نیست بلکه char هست
امیدوارم متوجه شده باشید.

Mahdi_Delphi
چهارشنبه 23 فروردین 1385, 18:39 عصر
من فکر میکنم بخاطر اینه که بشه از چند تا اپراتور استفاده گرد
دقیقا همینطوره

میشه بیشتر توضیح بدین
خیلی واضحه !

hercules_3d
پنج شنبه 24 فروردین 1385, 05:14 صبح
در مورد عملگرهای ++ و =+ هم همین طوره؟