یاد بگیرید برنامه نویسی کنید: تفاوت بین اپراتور نقطه (.) و -> در C ++ چیست؟ [تکثیر]؟


پاسخ 1:

عملگر نقطه امکان دسترسی به یک عنصر شی را فراهم می کند که در آن عملوند سمت چپ یک نام شی یا مرجع یک جسم است. عملگر پیکان دسترسی به عضوی از شیئی که توسط عملگر سمت چپ (یک اشاره گر ساده) به آن اشاره شده است ، فراهم می کند.

علاوه بر این ، ممکن است اپراتور پیکان بیش از حد بارگیری شود. بنابراین اگر اپراتور سمت چپ یک اشاره گر ساده نیست بلکه یک شیء است ، ممکن است اپراتور معنای متفاوتی داشته باشد. با این وجود ، نتیجه باید یک اشاره گر ساده یا یک اشاره به یک شی موجود باشد (که اپراتور دسترسی نیز برای آن تعریف شده است). به طور مصنوعی ، عملگر مناسب باید عضو (شناسه عضو موجود) این شی باشد.

نشانگرهای هوشمند مثال خوبی از اضافه بار معقول اپراتور پیکان است. اینها کلاس هایی هستند که یک نشانگر ساده را محصور می کنند و عملکردهای بیشتری را اضافه می کنند (مالکیت منحصر به فرد از شیء پویا یا تعداد مرجع). اپراتور پیکان روی نشانگرهای هوشمند بارگیری می شود. بنابراین می توانید از آن برای دسترسی به جسم زیر استفاده کنید ، همانطور که می خواهید با یک اشاره گر ساده به آن شیء دسترسی پیدا کنید.


پاسخ 2:

من با کلمات ساده به شما می گویم ...

از عملگر dot و برای دسترسی به اعضای یک ساختار استفاده کنید

با استفاده از نشانگر ، از اپراتور پیکان برای دسترسی به عناصر یک ساختار استفاده کنید.

به عنوان مثال ، ساختار زیر را در نظر بگیرید ………

ساختار دانشجو int regNo؛ نام کاراکتر [25]؛ d std؛

برای اختصاص مقدار "suhail" به عنصر نام مورد std ، موارد زیر را بنویسید:

strcpy (نام پیش فرض ، "suhail")؛

اگر ptr_std به یک شیء از نوع دانش آموز اشاره می کند و مقدار "suhail" را به قسمت نام شیء std اختصاص می دهید ، باید به شرح زیر بنویسید ...

strcpy (ptr_std-> نام ، "suhail")؛

پاسخ 3:

عملگر اشاره گر به اصطلاح شکر نحوی است: چیزی که در واقع لازم نیست اما تایپ کردن و خواندن برنامه را آسانتر می کند. بیانیه

p-> زمینه

یکسان است

(* پ). میدان

اگر p در واقع نشانگر است. اگر این یک شیء باشد ، کامپایلر به جای آن از روش عملگر -> () استفاده می کند.