من نتونستم اين كدو كامپايل كنم چون تو خط 29 يه ارور ميده ميشه بگيد مشكلش چيه؟
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من نتونستم اين كدو كامپايل كنم چون تو خط 29 يه ارور ميده ميشه بگيد مشكلش چيه؟
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
امیدوارم بااین کد مشکلت حل شه من تو محیط داس کامپایل کردم ولی یه وارنینگ داره کار باusing namespace std; رو بلد نبودم پاک کردم فکر کنم مشکلی پیش نیاد
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کدتون هنوز error می ده......میشه کلا درباره برنامتون توضیح بدید اینکه می خواید چیکار کنه ....شاید بتونم کمک کنم
این کد رو ببینید .....همون کاری رو می کنه که می خواید ؟
( من فقط توی کد اصلاح شده دوستمون const روهم برداشتم )
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من ميگم مشكل كد من چيه كه ارور ميده لطفا رو كد خودم توضيح بدين
اینم کد : ...ببینید درست شد ؟؟
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دوستان من از كار شئ operator كه در خطوط 28 تا 32 تعريف شده سر در نميارم ميشه برام واضح توضيح بدين
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دوست عزیز operator یه شی نیست
اصلا operator تو این کلاس چیزی نیست
ببینید ++c یه سری داده از پیش تعیین شده داره مثل int , float ,..... که عملگر مثلا ++(یا +یا - یا / و *و....) روی این داده ها تعریف شده و ++n بعنی n رو بعد از پردازش یکی اضافه کن
حالا که شما میای یه کلاس تعریف میکنی .با این کار در واقع داری یه نوع داده جدید به نام کلاستون میسازی بعنی تو برنامه شما یه داده جدید مثل int و..... به نام counter ساخته شده.
حالا عملگرهایی مثل جمع یا تفریق و .... یا همین ++ واسه این نوع داده جدید که شما تعریف کردیش تعریف نشده و برای مثال اگه ما دو object از این کلاس شما به اسم های obj1 و obj2 داشته باشیم obj1+obj2 یا obj1++ معنی نمیده و خطا میگیره
واسه رفع این مشکل ما میایم این عملگر ها رو واسه داده جدیدی که ساختیم تعریف میکنیم
واسه این کار هم باید تو کلاس مربوطه واسه این عملگر یه تابع تعریف کنیم که اصطلاحا به این کار (operator overloading )میگن.
دراین توابع اصولا قبل از عملگر باید کلمه operator بیاد
برای مثال در مورد تابع شما :
این تابع در واقع عملکرد ++ رو روی داده counter مشخص میکنهکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که ++ روی شی جاری عمل کرده (this) و یه داده از نوع counter که const تعریف شده باز میگردونه
حالا اگر obj1 یه شی از نوع counter باشه ++obj1 به این معنی هست که متغییر itsVal شی جاری رو یکی اضافه کن
ميشه يه نفر اينو به c بنويسه ما هم بفهميم؟
اخه من هنوز ++c بلد نيستم.
ممنون.
دوستان ببخشيد كه دوباره مزاحمتون ميشم راستش من مثل هميشه تو اين كد به مشكل بر خوردم اونم در خطوط 27 تا 32 اگه ميشه كاري كه اين خطوط(27 تا 32) انجام ميدنو برام واضح توضيح بدي.ن
يه سوال ديگه هم دارم براي چي operator اول به صورت مرجع اعلان شده؟
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by mahdi7s; 08-08-2008 at 10:19. دليل: همينجوري
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)