مشاهده نسخه کامل
: راهنمایی در مورد c++
سلام دوستان , من تازه وارد هستم اینجا و همچنین به برنامه نویسی c++ , یک راهنمایی می خواستم در مورد برنامه ای که obj برای ماتریس بسازد که شامل constructor, copy constructor , معکوس و ضرب و جمع و ترانهاده باشد..... گیج شدم :41:
ممنونم
hamidreza_buddy
28-04-2007, 20:32
سازندۀ کپی در مواقعی استفاده می شود که ما بخواهیم یک شئ جدید ولی با مقادیر یک شئ دیگر از همان نوعبوجود آوریم.
برای درک بهتر موضوع به مثال های زیر توجه کنید.
ابتدا یک کلاس (به نام A) بدون سازندۀ کپی:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در کد بالا به سازندۀ A() اصطلاحاً سازندۀ پیش فرض نیز گفته می شود (چون اگر سازنده ای مشخص نکنیم، این سازنده به صورت پیش فرض اجرا می شود)
در مثال زیر یک کلاس با سازندۀ کپی مشاهده می کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سازندۀ کپی در مواردی مجبور به استفاده می شویم که کلاس ما دارای یک اشاره گر باشد (مثل کلاس بالا). در این صورت باید محل مورد اشاره را نیز برای شئ جدید بوجود آوریم وگرنه آن محل بین دو کلاس به صورت مشترک خواهد بود.
سازنده های کپی در سه جا به کار می روند:
1- ساختن یک شئ جدید از یک شئ
2- هنگام ارسال شئ به تابع با مقدار
3- هنگام بازگشت دادن یک شئ از تابع
در مورد ماتریس:
یک عضو به صورت زیر تعریف کن:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و یک عضو برای نگهداری طول ماتریس:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و در سازندۀ کپی آن یه همچین چیزی باشه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای ضرب و ترانهاده و ... هم که فک نمی کنیم مشکلی باشه.
برای پیاده سازی این توابع هم توی اون تابع یک Matrix می سازی (new میکنی) و عملایت رو روش انجام می دی.
البته باید دو تابع برای برگردوندن و نوشتن توی عناصر ماتریس بنویسی:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
فقط یه مسئله که هست اینه که بهتره یه سازنده بسازی که طول ماترس رو میگیره و اونو می سازه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که این سازنده مقدار عناصر رو صفر می کنه (می تونی این قسمت صفر کردنو برداری).
دوست عزیز ممنون از راهنمایی , از سر در گمی در اومدم (-;
asal arian
01-01-2014, 20:14
سلام اگه مقادير درايه هاي ماتريس ثابت باشند نخواهيم طول بدهيم سازنده كپي آن چجوري ميشه؟ چون n وجود نداره؟ بشدت گيج شدم
همچنين براي سربارگذاري عملگرهاي مساوي و مساوي مساوي(= و ==) براي ماتريس چ بايد كرد؟
خيلي ممنون ميشم پاسخ بدين
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.