View Full Version : تفاوت ارثبری public , protected , private
mr_esmaily
دوشنبه 20 تیر 1384, 16:49 عصر
سلام
تفاوت در ارثبری از انواع فوق در چیست؟
sh_roohani
دوشنبه 20 تیر 1384, 17:03 عصر
من یه جایی خوندم در ارث بری public، هر چه که در کلاس والد public بوده در کلاس فرزند هم public می شه و هر چه که در کلاس والد protected بوده، در کلاس فرزند هم protected می شه. اما در ارث بری protected هر چه که در کلاس والد public بود هم در کلاس فرزند protected می شه. بنابراین اگه از این فرزند، یه فرزند جدید ارث ببره، دیگه به اعضای public والد اولیه دسترسی نخواهد داشت.
mr_esmaily
دوشنبه 20 تیر 1384, 17:49 عصر
سلام
هر چی سروکله زدم ظاهرا انواع ارثبری بر روی کلاس های مشتق شده ی بعدی تاثیری نداره ولی روی اشیا بوجود اومده از اون کلاس ها تاثیر میذاره؟!
Inprise
دوشنبه 20 تیر 1384, 18:19 عصر
کلاس فرزند ، همیشه ، "اعضاء" Public و Protected کلاس پدر را خواهد دید ؛ اما یک عضو Private کلاس پدر توسط کلاس فرزند قابل استفاده نخواهد بود . اعضاء Private و Protected فقط برای کلاسهای Friend در دسترس هستند . اینجا هم اطلاعات مختصر و مفیدی برای درک سریع و سهل مسئله وجود داره :
http://cplus.about.com/od/beginnerctutorial/l/aa120502a.htm
mr_esmaily
دوشنبه 20 تیر 1384, 19:14 عصر
سلام
کلاس فرزند ، همیشه ، "اعضاء" Public و Protected کلاس پدر را خواهد دید ؛ اما یک عضو Private کلاس پدر توسط کلاس فرزند قابل استفاده نخواهد بود . اعضاء Private و Protected فقط برای کلاسهای Friend در دسترس هستند . اینجا هم اطلاعات مختصر و مفیدی برای درک سریع و سهل مسئله وجود داره :
http://cplus.about.com/od/beginnerctutorial/l/aa120502a.htm
مشکلی در درک انواع تعریف اعضا ندارم مشکل من در انواع دسترسی تعریف شده مربوط به کلاس های درایو شده است مثلاً :
class Base
{
members ...
},
class Derived :[Public ,protected , private ] Base
{
members...
};
Inprise
دوشنبه 20 تیر 1384, 19:43 عصر
http://www.cplusplus.com/doc/tutorial/tut4-3.html
mr_esmaily
سه شنبه 21 تیر 1384, 01:18 صبح
سلام
متن مختصر و مفیدی بود و تا اونجایی که من از اون متن فهمیدم ( قبلا هم شک داشتم ) نوع وراثت فقط در "اشیاء" کلاس های درایو شده تاثیر میزاره , به عنوان مثال , در وراثت بصورت private , protected اعضاء کلاس پایه تماماً از دید اشیا کلاس درایو شده پنهان است مانند اینکه هیچ کلاس پایه ای وجود ندارد.
اگر دربرداشت من مشکلی هست ممنون میشم تذکر بدین.
Inprise
سه شنبه 21 تیر 1384, 01:38 صبح
پیاده سازی کلاسها و قواعد دسترسی و ارث بری مربوط به زمان پیاده سازی و مفهوم شیء و میزان دسترسی و والد و مولود متعلق به زمان اجراست . نمیتونم بفهمم چطوری داری بین این دو مفهوم کاملا" از هم جدا ارتباط برقرار میکنی ...؛ علی ای حال ، تو از کلاست حداقل یک شی میسازی و اون شیء با توجه به امکانات کلاس ، وظایف مورد نظرش رو انجام میده ؛ شی دیگری هم تولید کردی از یک کلاس دیگه که ممکنه رابطه پدر-فرزندی با کلاس شی اول داشته باشه ، یا نداشته باشه ، و در هر حال ، شی اول میتونه متدهای عمومی و حفاظت شده شی دوم رو صدا کنه و بالعکس و ...همینطور برای مقادیر و ...
مفاهیمی که تو توضیحات و لینکهای فوق وجود دارند ، متضمن نکات لازم برای "پیاده سازی کلاسها" و ساختار مبتنی بر کلاس نرم افزار است ، در زمان اجرا ، قواعد دسترسی اشیاء به هم ، تابع قوانینی است که موقع پیاده سازی کلاس اون شی ، برای هر متد یا عضو در نظر گرفته شده ؛ فارغ از اینکه اون کلاس ، فرزند چه کلاسی یا پدر چه کلاسهائی است .
mr_esmaily
سه شنبه 21 تیر 1384, 02:01 صبح
سلام
ممنون میشم اگه در مورد
... شی اول میتونه متدهای عمومی و حفاظت شده شی دوم رو صدا کنه و بالعکس و ...همینطور برای مقادیر و ...
و همچنین
مفاهیمی که تو توضیحات و لینکهای فوق وجود دارند ، متضمن نکات لازم برای "پیاده سازی کلاسها" و ساختار مبتنی بر کلاس نرم افزار است ، در زمان اجرا ، قواعد دسترسی اشیاء به هم ، تابع قوانینی است که موقع پیاده سازی کلاس اون شی ، برای هر متد یا عضو در نظر گرفته شده ؛ فارغ از اینکه اون کلاس ، فرزند چه کلاسی یا پدر چه کلاسهائی است .
کمی بیشتر توضیح بدین .
Inprise
سه شنبه 21 تیر 1384, 02:11 صبح
1- اشیاء فقط تابع محدودیتهائی هستند که هنگام پیاده سازی "کلاسی که مستقیما" از اون ساخته شده اند" در نظر گرفته شده ؛ همینطوره در مورد فراکنشهای بین اشیاء ؛ هر چیزی که مربوط به کلاس ، ارث بری و قواعد سختارمند سازی کلاسها میشه ، فقط برای طراحی بدنه و پیکرهء کلاسها معتبره ، یعنی ساختن سگ از حیوان ، پورشه از ماشین ، دختر از انسان و غیرهم ؛ حالا تو هر چقدر که بخواهی میتونی دختر داشته باشی که فقط مطابق شرایط "زمانی که بدنیا آمده اند" با هم در حال تعامل اند ، و نه چیز دیگری ، مثلا" هر چیزی مربوط به "انسان" و غیره .
2- موقع پیاده سازی یک کلاس ، نوع رفتار شی متناظر رو مشخص میکنی و هنگام تعریف ساختار ارث بری بین کلاسها ، در حال مدیریت و چینش صحیح بدنه سیستم هستی ؛ ارث بری کلاسها و مسائل مربوط به اونها ، دخلی به اوضاع و احوال شیء های سیستم و قواعدی که اونها ازش تبعیت میکنند نداره . برای درک بهتر موضوع ، باید یکبار ، نحوهء تعامل شیء با کلاسش رو ببینی ، و یکبار نحوهء تعامل کلاسهای سیستم با هم . این دو مقوله به هم مرتبط نیستند .
موفق باشی
mr_esmaily
سه شنبه 21 تیر 1384, 10:56 صبح
سلام
با تشکر , به چیزی که می خواستم رسیدم.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.