واضح آرشیو وب فارسی:سایت ریسک: soheil136623-08-2006, 08:12 PMسلام من وقتی عملگر >>(cout) را دوباره تعریف میکنم و در قسمت نام object ورودی به تابع const نمیگذارم بعد از اینکه بخواهم object را به خروجی بدم در حالی که در جلوی یا در پشت object از عملگر ++ استفاده بکنم کامپایلر ارور میدهد ولی اگر در موقع object ورودی به تابع const بگذارم دیگر ارور نمیدهد لطفا هر کسی میتواند دلیل این را بگوید در ضمن عملگر ++ را هم برای جلوی object و هم برای پشت object مجددا تعریف کرده ام ostream &operator<<(ostream &out,classname &obj) حالتی که ارور میدهد ostream &operator<<(ostream &out,const classname &obj) حالتی که ارور نمیده someone24-08-2006, 12:19 AMسلام. parameter دوم نبايد توسط >> operator اصلاح (Modify) يا تغيير كنه.بنابراين بهتره به صورت const reference تعريف بشه. parameter دوم شما يك reference از كلاستون هست. يك reference فقط ميتونه مرجع يك Object باشه ونميتونه بعدا تغيير كنه و مرجع object ديگه اي بشه. در واقع يك reference مثل يك constant pointer هست. وكامپايلر يه reference رو در هنگام اجرا اون رو يك constant pointer در نظر ميگيره. ممكنه شما در برنامتون مقدار اين reference رو عوض كنيد يا اين مقدار دست كاري بشه.بنابراين بهتره به صورت const تعريف بشه. soheil136624-08-2006, 10:49 AMاز جواب کاملتون خیلی ممنونم ولی من باز هم متوجه نشدم که چرا به عملگر ++ ارور میده چون به نظر من در این مورد چه const بنویسم وچه ننویسم نباید به این کار من ایراد بگیره چون خودتون هم نوشتین بهتره به صورت const تعریف بشه نه ضروری. someone24-08-2006, 01:41 PMسلام دوست عزيز. آيا سوالتون مربوط به برنامه ي " کلاس اعداد کسری " كه نوشتيد ميشه؟ در ضمن از كدام Ide استفاده ميكنيد؟ soheil136624-08-2006, 07:04 PMسلام نه مربوط به كلاس اعداد كسري نيست توي هر كامپايلري كه امتحان كردم همون ارور رو ميده someone24-08-2006, 11:58 PMسلام نه مربوط به كلاس اعداد كسري نيست توي هر كامپايلري كه امتحان كردم همون ارور رو ميده دوباره سلام. اگه ممكنه كد برنامتون و error ي كه ايجاد ميشه رو بذاريد. ممنون. sorset25-08-2006, 11:44 AMببخشید اشتباهاً تو این تاپیک یه پست فرستادم یا به عبارتی راه گم کردم :blush: soheil136625-08-2006, 11:50 AMسلام شما در هر برنامه ای و هر کامپایلری که این روش رو امتحان کنید همون Error رو میده وربطی به برنامه و کامپایلر من نداره someone25-08-2006, 02:13 PMسلام شما در هر برنامه ای و هر کامپایلری که این روش رو امتحان کنید همون Error رو میده وربطی به برنامه و کامپایلر من نداره دوباره سلام. دوست عزيز متوجه شدم. منظورتون از همون error چيه؟ شما نه كد برنامتون رو ميذاريد نه در باره ي error توضيح ميديد. هر error يه code و يه description داره. اگه نميتونيد كد رو بذاريد,حداقل code error و description رو پست كنيد. soheil136625-08-2006, 11:48 PMدوباره سلام. دوست عزيز متوجه شدم. منظورتون از همون error چيه؟ شما نه كد برنامتون رو ميذاريد نه در باره ي error توضيح ميديد. هر error يه code و يه description داره. اگه نميتونيد كد رو بذاريد,حداقل code error و description رو پست كنيد. سلام من گفتم كد خاصي رو نميگم براي مثال اين دو برنامه ي زير رو مقايسه كنيد تا به منظور من پي ببريد !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! این کد درست بود ولی پایینی نه !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! میبینید که عملگر >> در حالت معمولی درست کار میکنه ولی در برنامه دومی در حالت ++ ارور میده someone26-08-2006, 01:53 AMدوباره سلام. هر دو برنامه كاملا صحيح و درست هستند.به همين دليل از شما پرسيدم كه IDE شما چيه. از version 7.0 به بعد , منظورم VS.net 2003 و VS.net 2005 اين مشكل وجود نداره. اگه از VS 6.0 استفاده ميكنيد فكر كنم بهتره sp5 رو download كنيد. دليلش هم به خاطر نحوه برخورد كامپايلر با reference هاست كه قبلا در موردش صحبت كرديم. اگه نظر من رو بخوايد ضرري نداره كه از VC++8.0 كه در مجموعه ي VS.net 2005 هم وجود داره استفاده كنيد. فقط اگه از VC++8.0 استفاده ميكنيد بهتره اين تغييرات رو انجام بديد. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اگه مشكلي پيش اومد باز اطلاع بديد. ممنون. soheil136626-08-2006, 08:41 PMسلام خیلی ممنون که منو راهنمایی کردین سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 456]