PDA

View Full Version : سوال: شی ضمنی چگونه شی است؟



complexcoding
دوشنبه 12 تیر 1391, 15:54 عصر
سلام
دوستان لطفا در ابتدا یه توضیح درباره شی های ضمنی و صریح بدهند ؟
بعد این کد رو هم یه نگاه بکنند؟
;test ob1,ob2
ob1.insert(ob2)

ob1 به صورت ضمنی وارد متد insert شده و ob2 به صورت صریح
خیلی ممنون

Salar Ashgi
دوشنبه 12 تیر 1391, 20:52 عصر
بهتره با مفاهیم لاتین کار کنید تا مفاهیم ناجور ترجمه شده فارسی !
معادل لاتین رو بگید تا بهتر بشه راهنمایی کرد .
البته هرچند از معانیشون یه چیزایی میشه فهمید ./

مسعود اقدسی فام
دوشنبه 12 تیر 1391, 20:56 عصر
در این قطعه کد تابع Insert به صورت صریح شی ob2 رو دریافت می‌کنه. در ضمن چون از طریق شی ob1 فراخوانی شده، به این شی هم (یعنی ob1) می‌شه داخل بدنه دسترسی داشت. مثلا اگه کلاس شامل فیلد f1 باشد کدی مثل f1 = ob2.f1 داخل تابع Insert یعنی f1 مربوط به ob2 رو در f1 مربوط به ob1 بریز. پس اینجا به صورت ضمنی به ob1 هم که تابع از طریق اون اجرا می‌شه دسترسی داره. البته این کد رو برای خوانایی بیشتر معمولا به صورت this->f1 = ob2.f1 می‌نویسن که یعنی f1 مربوط به این شی (یعنی ob1) رو برابر f1 شی ob2 قرار بده.

complexcoding
سه شنبه 13 تیر 1391, 09:52 صبح
حالا خود insert برای چه منظورهایی هستش؟

مسعود اقدسی فام
سه شنبه 13 تیر 1391, 11:51 صبح
حالا خود insert برای چه منظورهایی هستش؟



بستگی داره ob1 از چه کلاسی باشه که تابع insert چه کاری انجام بده. بدنه‌ی تابع باید مشخص باشه. اگه از کلاس‌های خود زبان باشه هم که تعریف و مفهومش مشخصه. مثلا اگه insert مربوط به vector باشه.
با این دو خط چیزی نمی‌شه گفت.